diff --git a/.github/workflows/build-and-release-stable.yml b/.github/workflows/build-and-release-stable.yml index f2bbf3ef5c2..24f736d1523 100644 --- a/.github/workflows/build-and-release-stable.yml +++ b/.github/workflows/build-and-release-stable.yml @@ -105,7 +105,7 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Docker stable and playground build & tag run: | - DOCKER_BUILDKIT=1 docker build -f install/docker/Dockerfile --no-cache -t ${{ secrets.IMAGE_NAME }}:stable-latest --build-arg TOKEN=${{ secrets.GLOBAL_TOKEN }} --build-arg GIT_COMMITSHA=${GITHUB_SHA::8} --build-arg GIT_VERSION=${GITHUB_REF/refs\/tags\//} --build-arg RELEASE_CHANNEL=${RELEASE_CHANNEL} . + DOCKER_BUILDKIT=1 docker build -f install/docker/Dockerfile --no-cache -t ${{ secrets.IMAGE_NAME }}:stable-latest --build-arg TOKEN=${{ secrets.GLOBAL_TOKEN }} --build-arg GIT_COMMITSHA=${GITHUB_SHA::8} --build-arg GIT_VERSION=${GITHUB_REF/refs\/tags\//} --build-arg RELEASE_CHANNEL=${RELEASE_CHANNEL} --build-arg PLAYGROUND=true . docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_REF/refs\/tags\//} docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_SHA::8} docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:playground-latest diff --git a/.github/workflows/build-ui-and-server.yml b/.github/workflows/build-ui-and-server.yml index 50c4cd6929b..65e78b4d56d 100644 --- a/.github/workflows/build-ui-and-server.yml +++ b/.github/workflows/build-ui-and-server.yml @@ -106,6 +106,7 @@ jobs: name: UI end-to-end tests if: github.repository == 'meshery/meshery' runs-on: ubuntu-22.04 + timeout-minutes: 45 steps: - name: Check out code uses: actions/checkout@v4 @@ -178,9 +179,10 @@ jobs: ADAPTER_URLS: "localhost:10000 localhost:10001 localhost:10002 localhost:10003 localhost:10004 localhost:10009 localhost:10007" run: | make server & - sleep 60 + sleep 90 - name: Install Playwright Browsers - run: cd ui && npx playwright install --with-deps && cd .. + run: npx playwright install --with-deps + working-directory: ui - name: Run Playwright End-to-End Tests env: MESHERY_SERVER_URL: "http://localhost:9081" @@ -189,15 +191,15 @@ jobs: REMOTE_PROVIDER_USER_PASSWORD: ${{ secrets.REMOTE_PROVIDER_USER_PASS }} PROVIDER_TOKEN: ${{ secrets.PROVIDER_TOKEN }} GITHUB_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} - run: | - cd ui && - npx playwright test --project=chromium --project=firefox --reporter="./tests/e2e/custom-playwright-reporter.js" && - cd .. + run: npx playwright test --project=chromium --project=firefox --reporter="./tests/e2e/custom-playwright-reporter.js" + working-directory: ui - name: Save PR number + if: always() run: | mkdir -p ./pr echo ${{ github.event.number }} > ./pr/number - name: Upload Test Report + if: always() uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 with: name: e2e-test-reporter diff --git a/.github/workflows/comment-e2e-test.yml b/.github/workflows/comment-e2e-test.yml index b3ea26aeb4e..e5202fe891a 100644 --- a/.github/workflows/comment-e2e-test.yml +++ b/.github/workflows/comment-e2e-test.yml @@ -1,3 +1,4 @@ +name: E2E Report on Pull Request Comment on: workflow_run: workflows: ['Meshery UI and Server'] @@ -23,13 +24,12 @@ jobs: with: script: | const fs = require('fs'); - const PR_NUMBER = Number(fs.readFileSync('./pr/number')); - const E2ETestReporter = fs.readFileSync('./ui/test-report.md'); + const PRNumber = Number(fs.readFileSync('./pr/number')); + const E2ETestReporter = String(fs.readFileSync('./ui/test-report.md')); - const { STAGING_URL } = process.env await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, - issue_number: PR_NUMBER, + issue_number: PRNumber, body: E2ETestReporter }); \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 62a928dea67..00000000000 --- a/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM frolvlad/alpine-glibc:alpine-3.13_glibc-2.32 - -COPY --from=layer5/getnighthawk:latest /usr/local/bin/nighthawk_service /app/server/cmd/ -COPY --from=layer5/getnighthawk:latest /usr/local/bin/nighthawk_output_transform /app/server/cmd/ -ENTRYPOINT ["/bin/sh","-c","sleep infinity"] diff --git a/Makefile b/Makefile index a925dde9f7f..582f9060a30 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ docker-build: docker-playground-build: # `make docker-playground-build` builds Meshery inside of a multi-stage Docker container. # This method does NOT require that you have Go, NPM, etc. installed locally. - DOCKER_BUILDKIT=1 docker build -f install/docker/Dockerfile -t layer5/meshery --build-arg TOKEN=$(GLOBAL_TOKEN) --build-arg GIT_COMMITSHA=$(GIT_COMMITSHA) --build-arg GIT_VERSION=$(GIT_VERSION) --build-arg RELEASE_CHANNEL=${RELEASE_CHANNEL} --build-arg PROVIDER=$(LOCAL_PROVIDER) --build-arg PROVIDER_BASE_URLS=$(MESHERY_CLOUD_PROD) . + DOCKER_BUILDKIT=1 docker build -f install/docker/Dockerfile -t layer5/meshery --build-arg TOKEN=$(GLOBAL_TOKEN) --build-arg GIT_COMMITSHA=$(GIT_COMMITSHA) --build-arg GIT_VERSION=$(GIT_VERSION) --build-arg RELEASE_CHANNEL=${RELEASE_CHANNEL} --build-arg PROVIDER=$(LOCAL_PROVIDER) --build-arg PROVIDER_BASE_URLS=$(MESHERY_CLOUD_PROD) --build-arg PLAYGROUND=true . ## Build Meshery Server and UI container for e2e testing. docker-testing-env-build: @@ -415,10 +415,10 @@ graphql-build: dep-check ## testing test-setup-ui: - cd ui && npm ci && npx playwright install --with-deps && cd .. + cd ui; npm ci; npx playwright install --with-deps; cd .. test-ui: - cd ui && npm run test:e2e && cd .. + cd ui; npm run test:e2e; cd .. #----------------------------------------------------------------------------- # Dependencies diff --git a/README.md b/README.md index e7a5c0b4546..dece25289e8 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ alt="Meshery Logo" width="70%" />

-->

-

If you’re using Meshery or if you like the project, please this repository to show your support! 🤩

+

If you like Meshery, please this repository to show your support! 🤩

MESHERY IS A CLOUD NATIVE COMPUTING FOUNDATION PROJECT

diff --git a/docs/_config.yml b/docs/_config.yml index 19f0bd6fb67..842f9b5a01c 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -65,7 +65,7 @@ fixedNav: 'true' # true or false permalink: /:year/:title/ markdown: kramdown -exclude: [_site, CHANGELOG.md, LICENSE, README.md, vendor, Makefile, v0.4, v0.5, v0.6] +exclude: [_site, CHANGELOG.md, LICENSE, README.md, vendor, Makefile] plugins: - jekyll-redirect-from diff --git a/docs/_data/discuss/meshery.json b/docs/_data/discuss/meshery.json index 6d8e740a2e0..842dfeb4102 100644 --- a/docs/_data/discuss/meshery.json +++ b/docs/_data/discuss/meshery.json @@ -1 +1 @@ -{"users":[{"id":1521,"username":"csengineer23","name":"Roshan Goswami","avatar_template":"/user_avatar/discuss.layer5.io/csengineer23/{size}/1388_2.png","trust_level":1},{"id":2479,"username":"Senthil_Athiban","name":"Senthil Athiban","avatar_template":"/user_avatar/discuss.layer5.io/senthil_athiban/{size}/2269_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"trust_level":1},{"id":3,"username":"Lee","name":"Lee Calcote","avatar_template":"/user_avatar/discuss.layer5.io/lee/{size}/7_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"admin":true,"moderator":true,"trust_level":2},{"id":975,"username":"vishalvivekm","name":"Vivek Vishal","avatar_template":"/user_avatar/discuss.layer5.io/vishalvivekm/{size}/1038_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"admin":true,"moderator":true,"trust_level":2},{"id":2875,"username":"Devesh","name":"Devesh","avatar_template":"/user_avatar/discuss.layer5.io/devesh/{size}/2600_2.png","trust_level":1},{"id":2896,"username":"anujagrawal","name":"Anuj Agrawal","avatar_template":"/user_avatar/discuss.layer5.io/anujagrawal/{size}/2620_2.png","trust_level":1},{"id":2579,"username":"Rudraksh_Tyagi","name":"Rudraksh Tyagi","avatar_template":"/user_avatar/discuss.layer5.io/rudraksh_tyagi/{size}/2364_2.png","trust_level":1},{"id":2890,"username":"Jerens_Lensun","name":"Jerens Lensun","avatar_template":"/user_avatar/discuss.layer5.io/jerens_lensun/{size}/2617_2.png","trust_level":1},{"id":2902,"username":"hritesh94","name":"Hritesh Goldar","avatar_template":"/user_avatar/discuss.layer5.io/hritesh94/{size}/2629_2.png","trust_level":0},{"id":969,"username":"Sudhanshu_Dasgupta","name":"Sudhanshu Dasgupta","avatar_template":"/user_avatar/discuss.layer5.io/sudhanshu_dasgupta/{size}/997_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":2},{"id":621,"username":"Yash_Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash_sharma/{size}/579_2.png","trust_level":2},{"id":826,"username":"Yash.Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash.sharma/{size}/762_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":2},{"id":637,"username":"Annu.Singh","name":"","avatar_template":"/user_avatar/discuss.layer5.io/annu.singh/{size}/598_2.png","trust_level":1},{"id":2853,"username":"Awani_Alero","name":"Awani Alero","avatar_template":"/user_avatar/discuss.layer5.io/awani_alero/{size}/2569_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"trust_level":2},{"id":1429,"username":"Loveyfin00","name":"loveth omokaro","avatar_template":"/user_avatar/discuss.layer5.io/loveyfin00/{size}/1304_2.png","trust_level":1},{"id":2885,"username":"Shridhar","name":"Shridhar","avatar_template":"/user_avatar/discuss.layer5.io/shridhar/{size}/2611_2.png","trust_level":1},{"id":2881,"username":"Shubh_Garg","name":"Shubh Garg","avatar_template":"/user_avatar/discuss.layer5.io/shubh_garg/{size}/2606_2.png","trust_level":0},{"id":2102,"username":"balagowda","name":"Balachandregowda P","avatar_template":"/letter_avatar_proxy/v4/letter/b/e0b2c6/{size}.png","trust_level":1},{"id":2615,"username":"Shahid.Ilhan","name":"Shahid Ilhan","avatar_template":"/user_avatar/discuss.layer5.io/shahid.ilhan/{size}/2382_2.png","trust_level":1},{"id":2869,"username":"Redarcher9","name":"Snehit","avatar_template":"/user_avatar/discuss.layer5.io/redarcher9/{size}/2594_2.png","trust_level":1},{"id":2874,"username":"pra2107tham","name":"Pratham Shirbhate","avatar_template":"/user_avatar/discuss.layer5.io/pra2107tham/{size}/2599_2.png","trust_level":0},{"id":2121,"username":"moin","name":"Muhammad Moinuddin","avatar_template":"/user_avatar/discuss.layer5.io/moin/{size}/2321_2.png","trust_level":1},{"id":1581,"username":"ash-kamrip","name":"ash-kamrip","avatar_template":"/user_avatar/discuss.layer5.io/ash-kamrip/{size}/1472_2.png","trust_level":1},{"id":2862,"username":"priyanka_devoor","name":"priyanka devoor","avatar_template":"/user_avatar/discuss.layer5.io/priyanka_devoor/{size}/2590_2.png","trust_level":0},{"id":2871,"username":"Vidit_Kushwaha","name":"Vidit Kushwaha","avatar_template":"/user_avatar/discuss.layer5.io/vidit_kushwaha/{size}/2597_2.png","trust_level":0},{"id":2747,"username":"innocentrda","name":"Innocentrda","avatar_template":"/user_avatar/discuss.layer5.io/innocentrda/{size}/2472_2.png","trust_level":1},{"id":2831,"username":"sujal.shah","name":"sujal shah","avatar_template":"/user_avatar/discuss.layer5.io/sujal.shah/{size}/2572_2.png","trust_level":0},{"id":147,"username":"MUzairS15","name":"Mohd Uzair","avatar_template":"/user_avatar/discuss.layer5.io/muzairs15/{size}/273_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":1},{"id":2794,"username":"Aviral0702","name":"Aviral Asthana","avatar_template":"/user_avatar/discuss.layer5.io/aviral0702/{size}/2530_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"trust_level":1},{"id":2022,"username":"iArchitSharma","name":"Archit Sharma","avatar_template":"/user_avatar/discuss.layer5.io/iarchitsharma/{size}/1944_2.png","trust_level":2},{"id":2826,"username":"Aditya_Chari_S","name":"Aditya Chari S","avatar_template":"/user_avatar/discuss.layer5.io/aditya_chari_s/{size}/2536_2.png","trust_level":0},{"id":2729,"username":"Faisal-imtiyaz123","name":"Faisal Imtiyaz123","avatar_template":"/user_avatar/discuss.layer5.io/faisal-imtiyaz123/{size}/2461_2.png","trust_level":1}],"primary_groups":[],"flair_groups":[{"id":42,"name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_color":""}],"topic_list":{"can_create_topic":false,"more_topics_url":"/tag/meshery?match_all_tags=true&page=1&tags%5B%5D=meshery","per_page":30,"top_tags":["meshery","community","meetings","layer5","doubt","websites","meshmate","mesheryctl","meshery-ui","meshmap","weekly-summary","docs","newcomers","ux","error","meshery-adapter","devops","kubernetes","sistent","models","reactjs","announcements","cicd","components","discussion","docker-desktop","help","meshmodel","nighthawk","playground","setup-issue"],"tags":[{"id":78,"name":"meshery","topic_count":356,"staff":false,"description":null}],"topics":[{"id":4463,"title":"I am facing following issue in my local setup","fancy_title":"I am facing following issue in my local setup","slug":"i-am-facing-following-issue-in-my-local-setup","posts_count":3,"reply_count":0,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_1024x545.png","created_at":"2024-01-09T05:04:59.837Z","last_posted_at":"2024-08-20T18:47:43.462Z","bumped":true,"bumped_at":"2024-08-20T18:47:43.462Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1917,"height":1021,"url":"https://discuss.layer5.io/uploads/default/original/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":545,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_1024x545.png"},{"max_width":800,"max_height":800,"width":800,"height":426,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_800x426.png"},{"max_width":600,"max_height":600,"width":600,"height":319,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_600x319.png"},{"max_width":400,"max_height":400,"width":400,"height":213,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_400x213.png"},{"max_width":300,"max_height":300,"width":300,"height":159,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_300x159.png"},{"max_width":200,"max_height":200,"width":200,"height":106,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_200x106.png"}],"tags":["meshery"],"tags_descriptions":{},"views":185,"like_count":0,"has_summary":false,"last_poster_username":"Senthil_Athiban","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":1521,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":2479,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5574,"title":"Meshery Development Meeting (Aug. 14th, 2024)","fancy_title":"Meshery Development Meeting (Aug. 14th, 2024)","slug":"meshery-development-meeting-aug-14th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-08-14T17:01:17.992Z","last_posted_at":"2024-08-14T17:01:18.131Z","bumped":true,"bumped_at":"2024-08-14T17:01:18.131Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":8,"like_count":0,"has_summary":false,"last_poster_username":"vishalvivekm","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42}]},{"id":5547,"title":"Meshery containers are not stopping properly","fancy_title":"Meshery containers are not stopping properly","slug":"meshery-containers-are-not-stopping-properly","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_1024x109.png","created_at":"2024-08-11T02:28:37.824Z","last_posted_at":"2024-08-11T02:28:37.970Z","bumped":true,"bumped_at":"2024-08-11T02:28:37.970Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1521,"height":163,"url":"https://discuss.layer5.io/uploads/default/original/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":109,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_1024x109.png"},{"max_width":800,"max_height":800,"width":800,"height":85,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_800x85.png"},{"max_width":600,"max_height":600,"width":600,"height":64,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_600x64.png"},{"max_width":400,"max_height":400,"width":400,"height":42,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_400x42.png"},{"max_width":300,"max_height":300,"width":300,"height":32,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_300x32.png"},{"max_width":200,"max_height":200,"width":200,"height":21,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_200x21.png"}],"tags":["meshery"],"tags_descriptions":{},"views":11,"like_count":0,"has_summary":false,"last_poster_username":"Devesh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2875,"primary_group_id":null,"flair_group_id":null}]},{"id":5495,"title":"Unable to run Meshery locally","fancy_title":"Unable to run Meshery locally","slug":"unable-to-run-meshery-locally","posts_count":15,"reply_count":10,"highest_post_number":16,"image_url":null,"created_at":"2024-08-04T17:02:05.687Z","last_posted_at":"2024-08-10T05:19:52.279Z","bumped":true,"bumped_at":"2024-08-10T05:19:52.279Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery"],"tags_descriptions":{},"views":110,"like_count":3,"has_summary":false,"last_poster_username":"anujagrawal","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2896,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2875,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2579,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":2890,"primary_group_id":null,"flair_group_id":null}]},{"id":5498,"title":"How to setup e2e testing environment with playwright and docker for Meshery","fancy_title":"How to setup e2e testing environment with playwright and docker for Meshery","slug":"how-to-setup-e2e-testing-environment-with-playwright-and-docker-for-meshery","posts_count":5,"reply_count":2,"highest_post_number":6,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_1024x499.jpeg","created_at":"2024-08-04T17:39:23.255Z","last_posted_at":"2024-08-10T04:39:03.552Z","bumped":true,"bumped_at":"2024-08-10T04:39:03.552Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1190,"height":581,"url":"https://discuss.layer5.io/uploads/default/original/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":499,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_1024x499.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":390,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_800x390.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":292,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_600x292.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":195,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_400x195.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":146,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_300x146.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":97,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_200x97.jpeg"}],"tags":["meshery","testing"],"tags_descriptions":{},"views":107,"like_count":8,"has_summary":false,"last_poster_username":"anujagrawal","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2890,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":2896,"primary_group_id":null,"flair_group_id":null}]},{"id":5540,"title":"Help needed to setup Meshery locally","fancy_title":"Help needed to setup Meshery locally","slug":"help-needed-to-setup-meshery-locally","posts_count":9,"reply_count":2,"highest_post_number":9,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c.jpeg","created_at":"2024-08-09T06:40:26.319Z","last_posted_at":"2024-08-09T12:03:43.734Z","bumped":true,"bumped_at":"2024-08-09T12:03:43.734Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":856,"height":659,"url":"https://discuss.layer5.io/uploads/default/original/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":615,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_800x615.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":461,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_600x461.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":307,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_400x307.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":230,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_300x230.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":153,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_200x153.jpeg"}],"tags":["meshery","meshmate","mesheryctl","meshery-ui"],"tags_descriptions":{},"views":37,"like_count":1,"has_summary":false,"last_poster_username":"hritesh94","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":2902,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5525,"title":"Trying to build server on meshery is failing","fancy_title":"Trying to build server on meshery is failing","slug":"trying-to-build-server-on-meshery-is-failing","posts_count":7,"reply_count":2,"highest_post_number":7,"image_url":null,"created_at":"2024-08-07T15:06:32.288Z","last_posted_at":"2024-08-08T20:53:30.351Z","bumped":true,"bumped_at":"2024-08-08T20:53:30.351Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community"],"tags_descriptions":{},"views":30,"like_count":0,"has_summary":false,"last_poster_username":"Yash_Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2875,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null}]},{"id":5533,"title":"Meshery Build And Release Meeting | Aug 8th 2024","fancy_title":"Meshery Build And Release Meeting | Aug 8th 2024","slug":"meshery-build-and-release-meeting-aug-8th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-08-08T15:03:59.357Z","last_posted_at":"2024-08-08T15:03:59.480Z","bumped":true,"bumped_at":"2024-08-08T15:03:59.480Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":9,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5526,"title":"Meshery Development Meeting | Aug 7th 2024","fancy_title":"Meshery Development Meeting | Aug 7th 2024","slug":"meshery-development-meeting-aug-7th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-08-07T15:25:28.642Z","last_posted_at":"2024-08-07T15:25:28.782Z","bumped":true,"bumped_at":"2024-08-07T15:25:28.782Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":5,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5482,"title":"Unable to access meshery server after meshery server status is running","fancy_title":"Unable to access meshery server after meshery server status is running","slug":"unable-to-access-meshery-server-after-meshery-server-status-is-running","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_1024x625.png","created_at":"2024-07-31T16:23:18.355Z","last_posted_at":"2024-07-31T16:23:18.468Z","bumped":true,"bumped_at":"2024-07-31T16:25:13.548Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1551,"height":948,"url":"https://discuss.layer5.io/uploads/default/original/2X/6/694ca1223ff76435fcb38a967512aac419c978fb.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":625,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_1024x625.png"},{"max_width":800,"max_height":800,"width":800,"height":488,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_800x488.png"},{"max_width":600,"max_height":600,"width":600,"height":366,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_600x366.png"},{"max_width":400,"max_height":400,"width":400,"height":244,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_400x244.png"},{"max_width":300,"max_height":300,"width":300,"height":183,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_300x183.png"},{"max_width":200,"max_height":200,"width":200,"height":122,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_200x122.png"}],"tags":["meshery","community","doubt"],"tags_descriptions":{},"views":16,"like_count":0,"has_summary":false,"last_poster_username":"Devesh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2875,"primary_group_id":null,"flair_group_id":null}]},{"id":1822,"title":"Successfully setup cloud based developer environment to contribute to Meshery using GitHub Codespaces","fancy_title":"Successfully setup cloud based developer environment to contribute to Meshery using GitHub Codespaces","slug":"successfully-setup-cloud-based-developer-environment-to-contribute-to-meshery-using-github-codespaces","posts_count":8,"reply_count":2,"highest_post_number":8,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_1024x502.png","created_at":"2023-01-13T12:34:36.693Z","last_posted_at":"2024-07-31T09:24:40.972Z","bumped":true,"bumped_at":"2024-07-31T09:24:40.972Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1901,"height":933,"url":"https://discuss.layer5.io/uploads/default/original/1X/3fa8544f6efd1f870e43227758d93d44d6238555.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":502,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_1024x502.png"},{"max_width":800,"max_height":800,"width":800,"height":392,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_800x392.png"},{"max_width":600,"max_height":600,"width":600,"height":294,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_600x294.png"},{"max_width":400,"max_height":400,"width":400,"height":196,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_400x196.png"},{"max_width":300,"max_height":300,"width":300,"height":147,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_300x147.png"},{"max_width":200,"max_height":200,"width":200,"height":98,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_200x98.png"}],"tags":["meshery"],"tags_descriptions":{},"views":783,"like_count":12,"has_summary":false,"last_poster_username":"Awani_Alero","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":637,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":2853,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1429,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2885,"primary_group_id":null,"flair_group_id":null}]},{"id":5456,"title":"Looking for a Meshmate for LFX","fancy_title":"Looking for a Meshmate for LFX","slug":"looking-for-a-meshmate-for-lfx","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2024-07-20T11:59:44.367Z","last_posted_at":"2024-07-24T17:57:39.268Z","bumped":true,"bumped_at":"2024-07-24T17:57:39.268Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","layer5"],"tags_descriptions":{},"views":39,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2881,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5448,"title":"Meshery Development Meeting | July 17th 2024","fancy_title":"Meshery Development Meeting | July 17th 2024","slug":"meshery-development-meeting-july-17th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-07-17T18:12:09.452Z","last_posted_at":"2024-07-17T18:12:09.630Z","bumped":true,"bumped_at":"2024-07-17T18:12:09.630Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":15,"like_count":1,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":4176,"title":"Unable setup local Meshery development server","fancy_title":"Unable setup local Meshery development server","slug":"unable-setup-local-meshery-development-server","posts_count":11,"reply_count":7,"highest_post_number":13,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_1024x506.jpeg","created_at":"2023-11-11T17:50:15.758Z","last_posted_at":"2024-07-15T20:39:41.063Z","bumped":true,"bumped_at":"2024-07-15T20:39:41.063Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":949,"url":"https://discuss.layer5.io/uploads/default/original/2X/a/abe7a18567441c4ccf85622624413735c7a621f4.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":506,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_1024x506.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":395,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_800x395.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":296,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_600x296.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":197,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_400x197.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":148,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_300x148.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":98,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_200x98.jpeg"}],"tags":["meshery","doubt","help"],"tags_descriptions":{},"views":327,"like_count":3,"has_summary":false,"last_poster_username":"Redarcher9","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2102,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":621,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":2615,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2869,"primary_group_id":null,"flair_group_id":null}]},{"id":5443,"title":"Looking for a Meshmate as I want to apply for this project in LFX mentorship program","fancy_title":"Looking for a Meshmate as I want to apply for this project in LFX mentorship program","slug":"looking-for-a-meshmate-as-i-want-to-apply-for-this-project-in-lfx-mentorship-program","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-07-13T12:41:30.798Z","last_posted_at":"2024-07-13T13:58:51.601Z","bumped":true,"bumped_at":"2024-07-13T13:58:51.601Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community","websites","meshmate"],"tags_descriptions":{},"views":31,"like_count":2,"has_summary":false,"last_poster_username":"moin","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2874,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2121,"primary_group_id":null,"flair_group_id":null}]},{"id":5438,"title":"Meshery Build and Release Meeting | 11th July 2024","fancy_title":"Meshery Build and Release Meeting | 11th July 2024","slug":"meshery-build-and-release-meeting-11th-july-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-07-11T15:06:43.970Z","last_posted_at":"2024-07-11T15:06:44.124Z","bumped":true,"bumped_at":"2024-07-11T15:06:44.124Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":11,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":2928,"title":"Newcomers call experience and Star Meshery","fancy_title":"Newcomers call experience and Star Meshery","slug":"newcomers-call-experience-and-star-meshery","posts_count":13,"reply_count":5,"highest_post_number":13,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/f/f476bab5e84edfdfa15dedef0ec4b49d95a9fa72.png","created_at":"2023-06-22T12:52:08.145Z","last_posted_at":"2024-07-11T14:28:28.339Z","bumped":true,"bumped_at":"2024-07-11T14:28:28.339Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":285,"height":104,"url":"https://discuss.layer5.io/uploads/default/original/2X/f/f476bab5e84edfdfa15dedef0ec4b49d95a9fa72.png"},{"max_width":200,"max_height":200,"width":200,"height":72,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f476bab5e84edfdfa15dedef0ec4b49d95a9fa72_2_200x72.png"}],"tags":["meshery","meetings","doubt"],"tags_descriptions":{"meetings":""},"views":848,"like_count":23,"has_summary":false,"last_poster_username":"Vidit_Kushwaha","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":969,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1581,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2862,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":2871,"primary_group_id":null,"flair_group_id":null}]},{"id":5433,"title":"Meshery Development Meeting | July 10th 2024","fancy_title":"Meshery Development Meeting | July 10th 2024","slug":"meshery-development-meeting-july-10th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-07-10T17:11:19.340Z","last_posted_at":"2024-07-10T17:11:19.474Z","bumped":true,"bumped_at":"2024-07-10T17:11:19.474Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":7,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5415,"title":"So many connected connections","fancy_title":"So many connected connections","slug":"so-many-connected-connections","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_1024x537.png","created_at":"2024-07-05T09:17:07.117Z","last_posted_at":"2024-07-05T09:17:07.287Z","bumped":true,"bumped_at":"2024-07-05T09:17:07.287Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1651,"height":867,"url":"https://discuss.layer5.io/uploads/default/original/2X/b/b96132443048488969f264b918b7520b6eb503e9.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":537,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_1024x537.png"},{"max_width":800,"max_height":800,"width":800,"height":420,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_800x420.png"},{"max_width":600,"max_height":600,"width":600,"height":315,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_600x315.png"},{"max_width":400,"max_height":400,"width":400,"height":210,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_400x210.png"},{"max_width":300,"max_height":300,"width":300,"height":157,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_300x157.png"},{"max_width":200,"max_height":200,"width":200,"height":105,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_200x105.png"}],"tags":["meshery"],"tags_descriptions":{},"views":5,"like_count":1,"has_summary":false,"last_poster_username":"innocentrda","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2747,"primary_group_id":null,"flair_group_id":null}]},{"id":5404,"title":"Meshery Development Meeting | July 3rd 2024","fancy_title":"Meshery Development Meeting | July 3rd 2024","slug":"meshery-development-meeting-july-3rd-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-07-03T19:33:01.760Z","last_posted_at":"2024-07-03T19:33:01.952Z","bumped":true,"bumped_at":"2024-07-03T19:33:01.952Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":12,"like_count":1,"has_summary":false,"last_poster_username":"vishalvivekm","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42}]},{"id":5389,"title":"Meshery Development Meeting | June 26th 2024","fancy_title":"Meshery Development Meeting | June 26th 2024","slug":"meshery-development-meeting-june-26th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-26T15:17:55.211Z","last_posted_at":"2024-06-26T15:17:55.336Z","bumped":true,"bumped_at":"2024-06-27T23:49:32.837Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":52,"like_count":1,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5393,"title":"Meshery Build and Release Meeting | June 27th 2024","fancy_title":"Meshery Build and Release Meeting | June 27th 2024","slug":"meshery-build-and-release-meeting-june-27th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-27T14:43:51.432Z","last_posted_at":"2024-06-27T14:43:51.573Z","bumped":true,"bumped_at":"2024-06-27T14:43:51.573Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":34,"like_count":1,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5391,"title":"[Building Meshery with WSL2] Error: invalid memory address or nil pointer dereference (solved)","fancy_title":"[Building Meshery with WSL2] Error: invalid memory address or nil pointer dereference (solved)","slug":"building-meshery-with-wsl2-error-invalid-memory-address-or-nil-pointer-dereference-solved","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_1024x317.jpeg","created_at":"2024-06-26T19:18:17.793Z","last_posted_at":"2024-06-26T19:24:00.602Z","bumped":true,"bumped_at":"2024-06-26T19:24:00.602Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1255,"height":389,"url":"https://discuss.layer5.io/uploads/default/original/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":317,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_1024x317.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":247,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_800x247.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":185,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_600x185.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":123,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_400x123.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":92,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_300x92.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":61,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_200x61.jpeg"}],"tags":["meshery"],"tags_descriptions":{},"views":29,"like_count":2,"has_summary":false,"last_poster_username":"sujal.shah","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2831,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5361,"title":"Should relationship schemas be the source of truth when defining relationships?","fancy_title":"Should relationship schemas be the source of truth when defining relationships?","slug":"should-relationship-schemas-be-the-source-of-truth-when-defining-relationships","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_1024x609.png","created_at":"2024-06-22T17:08:26.938Z","last_posted_at":"2024-06-22T17:46:27.514Z","bumped":true,"bumped_at":"2024-06-22T17:46:27.514Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1531,"height":912,"url":"https://discuss.layer5.io/uploads/default/original/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":609,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_1024x609.png"},{"max_width":800,"max_height":800,"width":800,"height":476,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_800x476.png"},{"max_width":600,"max_height":600,"width":600,"height":357,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_600x357.png"},{"max_width":400,"max_height":400,"width":400,"height":238,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_400x238.png"},{"max_width":300,"max_height":300,"width":300,"height":178,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_300x178.png"},{"max_width":200,"max_height":200,"width":200,"height":119,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_200x119.png"}],"tags":["meshery","docs","relationships"],"tags_descriptions":{},"views":43,"like_count":1,"has_summary":false,"last_poster_username":"MUzairS15","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2747,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":147,"primary_group_id":null,"flair_group_id":42}]},{"id":5314,"title":"Accidently pushed my commit to running PR","fancy_title":"Accidently pushed my commit to running PR","slug":"accidently-pushed-my-commit-to-running-pr","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2024-06-18T22:19:51.688Z","last_posted_at":"2024-06-19T09:30:14.645Z","bumped":true,"bumped_at":"2024-06-19T09:30:14.645Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery"],"tags_descriptions":{},"views":49,"like_count":0,"has_summary":false,"last_poster_username":"Aviral0702","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2794,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":2022,"primary_group_id":null,"flair_group_id":null}]},{"id":5307,"title":"Error while setting up Meshery Dev Environment in Windows","fancy_title":"Error while setting up Meshery Dev Environment in Windows","slug":"error-while-setting-up-meshery-dev-environment-in-windows","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-17T09:08:04.389Z","last_posted_at":"2024-06-17T09:08:04.557Z","bumped":true,"bumped_at":"2024-06-17T09:08:04.557Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community","meshmate"],"tags_descriptions":{},"views":41,"like_count":0,"has_summary":false,"last_poster_username":"Aditya_Chari_S","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2826,"primary_group_id":null,"flair_group_id":null}]},{"id":5299,"title":"Where I can find the code of Layer5 Cloud ui?","fancy_title":"Where I can find the code of Layer5 Cloud ui?","slug":"where-i-can-find-the-code-of-layer5-cloud-ui","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-15T07:22:00.669Z","last_posted_at":"2024-06-15T07:22:00.845Z","bumped":true,"bumped_at":"2024-06-15T07:22:00.845Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","layer5"],"tags_descriptions":{},"views":43,"like_count":0,"has_summary":false,"last_poster_username":"Aviral0702","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2794,"primary_group_id":null,"flair_group_id":42}]},{"id":5292,"title":"Meshery Build and Release Meeting | June 13th 2024","fancy_title":"Meshery Build and Release Meeting | June 13th 2024","slug":"meshery-build-and-release-meeting-june-13th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-13T15:01:53.627Z","last_posted_at":"2024-06-13T15:01:53.838Z","bumped":true,"bumped_at":"2024-06-13T15:01:53.838Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":52,"like_count":1,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5276,"title":"Error while setting up local dev environment for docker desktop extension","fancy_title":"Error while setting up local dev environment for docker desktop extension","slug":"error-while-setting-up-local-dev-environment-for-docker-desktop-extension","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-10T05:40:52.243Z","last_posted_at":"2024-06-10T05:40:52.437Z","bumped":true,"bumped_at":"2024-06-10T05:40:52.437Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meshmate","meshery-ui"],"tags_descriptions":{},"views":54,"like_count":0,"has_summary":false,"last_poster_username":"Faisal-imtiyaz123","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2729,"primary_group_id":null,"flair_group_id":null}]},{"id":5270,"title":"Unable to deploy Meshery Adapters","fancy_title":"Unable to deploy Meshery Adapters","slug":"unable-to-deploy-meshery-adapters","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-07T18:12:11.288Z","last_posted_at":"2024-06-07T18:12:11.465Z","bumped":true,"bumped_at":"2024-06-07T18:12:11.465Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meshmate","meshery-adapter"],"tags_descriptions":{},"views":52,"like_count":0,"has_summary":false,"last_poster_username":"Faisal-imtiyaz123","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2729,"primary_group_id":null,"flair_group_id":null}]}]}} \ No newline at end of file +{"users":[{"id":1270,"username":"Chhanda.Naskar","name":"Chhanda Naskar","avatar_template":"/user_avatar/discuss.layer5.io/chhanda.naskar/{size}/2661_2.png","trust_level":0},{"id":1521,"username":"csengineer23","name":"Roshan Goswami","avatar_template":"/user_avatar/discuss.layer5.io/csengineer23/{size}/1388_2.png","trust_level":1},{"id":2479,"username":"Senthil_Athiban","name":"Senthil Athiban","avatar_template":"/user_avatar/discuss.layer5.io/senthil_athiban/{size}/2269_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"trust_level":1},{"id":3,"username":"Lee","name":"Lee Calcote","avatar_template":"/user_avatar/discuss.layer5.io/lee/{size}/7_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"admin":true,"moderator":true,"trust_level":2},{"id":975,"username":"vishalvivekm","name":"Vivek Vishal","avatar_template":"/user_avatar/discuss.layer5.io/vishalvivekm/{size}/1038_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"admin":true,"moderator":true,"trust_level":2},{"id":2875,"username":"Devesh","name":"Devesh","avatar_template":"/user_avatar/discuss.layer5.io/devesh/{size}/2600_2.png","trust_level":1},{"id":2896,"username":"anujagrawal","name":"Anuj Agrawal","avatar_template":"/user_avatar/discuss.layer5.io/anujagrawal/{size}/2620_2.png","trust_level":1},{"id":2579,"username":"Rudraksh_Tyagi","name":"Rudraksh Tyagi","avatar_template":"/user_avatar/discuss.layer5.io/rudraksh_tyagi/{size}/2364_2.png","trust_level":1},{"id":2890,"username":"Jerens_Lensun","name":"Jerens Lensun","avatar_template":"/user_avatar/discuss.layer5.io/jerens_lensun/{size}/2617_2.png","trust_level":1},{"id":2902,"username":"hritesh94","name":"Hritesh Goldar","avatar_template":"/user_avatar/discuss.layer5.io/hritesh94/{size}/2629_2.png","trust_level":0},{"id":969,"username":"Sudhanshu_Dasgupta","name":"Sudhanshu Dasgupta","avatar_template":"/user_avatar/discuss.layer5.io/sudhanshu_dasgupta/{size}/997_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":2},{"id":621,"username":"Yash_Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash_sharma/{size}/579_2.png","trust_level":2},{"id":826,"username":"Yash.Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash.sharma/{size}/762_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":2},{"id":637,"username":"Annu.Singh","name":"","avatar_template":"/user_avatar/discuss.layer5.io/annu.singh/{size}/598_2.png","trust_level":1},{"id":2853,"username":"Awani_Alero","name":"Awani Alero","avatar_template":"/user_avatar/discuss.layer5.io/awani_alero/{size}/2569_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"trust_level":2},{"id":1429,"username":"Loveyfin00","name":"loveth omokaro","avatar_template":"/user_avatar/discuss.layer5.io/loveyfin00/{size}/1304_2.png","trust_level":1},{"id":2885,"username":"Shridhar","name":"Shridhar","avatar_template":"/user_avatar/discuss.layer5.io/shridhar/{size}/2611_2.png","trust_level":1},{"id":2881,"username":"Shubh_Garg","name":"Shubh Garg","avatar_template":"/user_avatar/discuss.layer5.io/shubh_garg/{size}/2606_2.png","trust_level":0},{"id":2102,"username":"balagowda","name":"Balachandregowda P","avatar_template":"/letter_avatar_proxy/v4/letter/b/e0b2c6/{size}.png","trust_level":1},{"id":2615,"username":"Shahid.Ilhan","name":"Shahid Ilhan","avatar_template":"/user_avatar/discuss.layer5.io/shahid.ilhan/{size}/2382_2.png","trust_level":1},{"id":2869,"username":"Redarcher9","name":"Snehit","avatar_template":"/user_avatar/discuss.layer5.io/redarcher9/{size}/2594_2.png","trust_level":1},{"id":2874,"username":"pra2107tham","name":"Pratham Shirbhate","avatar_template":"/user_avatar/discuss.layer5.io/pra2107tham/{size}/2599_2.png","trust_level":0},{"id":2121,"username":"moin","name":"Muhammad Moinuddin","avatar_template":"/user_avatar/discuss.layer5.io/moin/{size}/2321_2.png","trust_level":1},{"id":1581,"username":"ash-kamrip","name":"ash-kamrip","avatar_template":"/user_avatar/discuss.layer5.io/ash-kamrip/{size}/1472_2.png","trust_level":1},{"id":2862,"username":"priyanka_devoor","name":"priyanka devoor","avatar_template":"/user_avatar/discuss.layer5.io/priyanka_devoor/{size}/2590_2.png","trust_level":0},{"id":2871,"username":"Vidit_Kushwaha","name":"Vidit Kushwaha","avatar_template":"/user_avatar/discuss.layer5.io/vidit_kushwaha/{size}/2597_2.png","trust_level":0},{"id":2747,"username":"innocentrda","name":"Innocentrda","avatar_template":"/user_avatar/discuss.layer5.io/innocentrda/{size}/2472_2.png","trust_level":1},{"id":2831,"username":"sujal.shah","name":"sujal shah","avatar_template":"/user_avatar/discuss.layer5.io/sujal.shah/{size}/2572_2.png","trust_level":0},{"id":147,"username":"MUzairS15","name":"Mohd Uzair","avatar_template":"/user_avatar/discuss.layer5.io/muzairs15/{size}/273_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":1},{"id":2794,"username":"Aviral0702","name":"Aviral Asthana","avatar_template":"/user_avatar/discuss.layer5.io/aviral0702/{size}/2530_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"trust_level":1},{"id":2022,"username":"iArchitSharma","name":"Archit Sharma","avatar_template":"/user_avatar/discuss.layer5.io/iarchitsharma/{size}/1944_2.png","trust_level":2},{"id":2826,"username":"Aditya_Chari_S","name":"Aditya Chari S","avatar_template":"/user_avatar/discuss.layer5.io/aditya_chari_s/{size}/2536_2.png","trust_level":0},{"id":2729,"username":"Faisal-imtiyaz123","name":"Faisal Imtiyaz123","avatar_template":"/user_avatar/discuss.layer5.io/faisal-imtiyaz123/{size}/2461_2.png","trust_level":1}],"primary_groups":[],"flair_groups":[{"id":42,"name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_color":""}],"topic_list":{"can_create_topic":false,"more_topics_url":"/tag/meshery?match_all_tags=true&page=1&tags%5B%5D=meshery","per_page":30,"top_tags":["meshery","community","meetings","layer5","doubt","websites","meshmate","mesheryctl","meshery-ui","meshmap","weekly-summary","docs","newcomers","ux","error","meshery-adapter","devops","kubernetes","sistent","models","reactjs","announcements","cicd","components","discussion","docker-desktop","help","meshmodel","nighthawk","playground","setup-issue"],"tags":[{"id":78,"name":"meshery","topic_count":357,"staff":false,"description":null}],"topics":[{"id":5631,"title":"Meshery UI local changes is not reflecting in localhost","fancy_title":"Meshery UI local changes is not reflecting in localhost","slug":"meshery-ui-local-changes-is-not-reflecting-in-localhost","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/c/c3d638be32dfa75ebc07b22492f63bc843e44312_2_1024x640.png","created_at":"2024-08-25T16:25:31.375Z","last_posted_at":"2024-08-25T16:25:31.538Z","bumped":true,"bumped_at":"2024-08-25T16:25:31.538Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2878,"height":1800,"url":"https://discuss.layer5.io/uploads/default/original/2X/c/c3d638be32dfa75ebc07b22492f63bc843e44312.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":640,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/c/c3d638be32dfa75ebc07b22492f63bc843e44312_2_1024x640.png"},{"max_width":800,"max_height":800,"width":800,"height":500,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/c/c3d638be32dfa75ebc07b22492f63bc843e44312_2_800x500.png"},{"max_width":600,"max_height":600,"width":600,"height":375,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/c/c3d638be32dfa75ebc07b22492f63bc843e44312_2_600x375.png"},{"max_width":400,"max_height":400,"width":400,"height":250,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/c/c3d638be32dfa75ebc07b22492f63bc843e44312_2_400x250.png"},{"max_width":300,"max_height":300,"width":300,"height":187,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/c/c3d638be32dfa75ebc07b22492f63bc843e44312_2_300x187.png"},{"max_width":200,"max_height":200,"width":200,"height":125,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/c/c3d638be32dfa75ebc07b22492f63bc843e44312_2_200x125.png"}],"tags":["meshery","community","layer5"],"tags_descriptions":{},"views":1,"like_count":0,"has_summary":false,"last_poster_username":"Chhanda.Naskar","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":1270,"primary_group_id":null,"flair_group_id":null}]},{"id":4463,"title":"I am facing following issue in my local setup","fancy_title":"I am facing following issue in my local setup","slug":"i-am-facing-following-issue-in-my-local-setup","posts_count":3,"reply_count":0,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_1024x545.png","created_at":"2024-01-09T05:04:59.837Z","last_posted_at":"2024-08-20T18:47:43.462Z","bumped":true,"bumped_at":"2024-08-20T18:47:43.462Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1917,"height":1021,"url":"https://discuss.layer5.io/uploads/default/original/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":545,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_1024x545.png"},{"max_width":800,"max_height":800,"width":800,"height":426,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_800x426.png"},{"max_width":600,"max_height":600,"width":600,"height":319,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_600x319.png"},{"max_width":400,"max_height":400,"width":400,"height":213,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_400x213.png"},{"max_width":300,"max_height":300,"width":300,"height":159,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_300x159.png"},{"max_width":200,"max_height":200,"width":200,"height":106,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/a8e15a47770a54e98c88709baed0854f83c56cf5_2_200x106.png"}],"tags":["meshery"],"tags_descriptions":{},"views":188,"like_count":0,"has_summary":false,"last_poster_username":"Senthil_Athiban","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":1521,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":2479,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5574,"title":"Meshery Development Meeting (Aug. 14th, 2024)","fancy_title":"Meshery Development Meeting (Aug. 14th, 2024)","slug":"meshery-development-meeting-aug-14th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-08-14T17:01:17.992Z","last_posted_at":"2024-08-14T17:01:18.131Z","bumped":true,"bumped_at":"2024-08-14T17:01:18.131Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":8,"like_count":0,"has_summary":false,"last_poster_username":"vishalvivekm","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42}]},{"id":5547,"title":"Meshery containers are not stopping properly","fancy_title":"Meshery containers are not stopping properly","slug":"meshery-containers-are-not-stopping-properly","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_1024x109.png","created_at":"2024-08-11T02:28:37.824Z","last_posted_at":"2024-08-11T02:28:37.970Z","bumped":true,"bumped_at":"2024-08-11T02:28:37.970Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1521,"height":163,"url":"https://discuss.layer5.io/uploads/default/original/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":109,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_1024x109.png"},{"max_width":800,"max_height":800,"width":800,"height":85,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_800x85.png"},{"max_width":600,"max_height":600,"width":600,"height":64,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_600x64.png"},{"max_width":400,"max_height":400,"width":400,"height":42,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_400x42.png"},{"max_width":300,"max_height":300,"width":300,"height":32,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_300x32.png"},{"max_width":200,"max_height":200,"width":200,"height":21,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5c20c9e3e7ca14541897282a15f484772e14331f_2_200x21.png"}],"tags":["meshery"],"tags_descriptions":{},"views":11,"like_count":0,"has_summary":false,"last_poster_username":"Devesh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2875,"primary_group_id":null,"flair_group_id":null}]},{"id":5495,"title":"Unable to run Meshery locally","fancy_title":"Unable to run Meshery locally","slug":"unable-to-run-meshery-locally","posts_count":15,"reply_count":10,"highest_post_number":16,"image_url":null,"created_at":"2024-08-04T17:02:05.687Z","last_posted_at":"2024-08-10T05:19:52.279Z","bumped":true,"bumped_at":"2024-08-10T05:19:52.279Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery"],"tags_descriptions":{},"views":111,"like_count":3,"has_summary":false,"last_poster_username":"anujagrawal","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2896,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2875,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2579,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":2890,"primary_group_id":null,"flair_group_id":null}]},{"id":5498,"title":"How to setup e2e testing environment with playwright and docker for Meshery","fancy_title":"How to setup e2e testing environment with playwright and docker for Meshery","slug":"how-to-setup-e2e-testing-environment-with-playwright-and-docker-for-meshery","posts_count":5,"reply_count":2,"highest_post_number":6,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_1024x499.jpeg","created_at":"2024-08-04T17:39:23.255Z","last_posted_at":"2024-08-10T04:39:03.552Z","bumped":true,"bumped_at":"2024-08-10T04:39:03.552Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1190,"height":581,"url":"https://discuss.layer5.io/uploads/default/original/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":499,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_1024x499.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":390,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_800x390.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":292,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_600x292.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":195,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_400x195.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":146,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_300x146.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":97,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f80dcffcff050e5d4fa57cd28d85b174d0d65a19_2_200x97.jpeg"}],"tags":["meshery","testing"],"tags_descriptions":{},"views":107,"like_count":8,"has_summary":false,"last_poster_username":"anujagrawal","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2890,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":2896,"primary_group_id":null,"flair_group_id":null}]},{"id":5540,"title":"Help needed to setup Meshery locally","fancy_title":"Help needed to setup Meshery locally","slug":"help-needed-to-setup-meshery-locally","posts_count":9,"reply_count":2,"highest_post_number":9,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c.jpeg","created_at":"2024-08-09T06:40:26.319Z","last_posted_at":"2024-08-09T12:03:43.734Z","bumped":true,"bumped_at":"2024-08-09T12:03:43.734Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":856,"height":659,"url":"https://discuss.layer5.io/uploads/default/original/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":615,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_800x615.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":461,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_600x461.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":307,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_400x307.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":230,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_300x230.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":153,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_200x153.jpeg"}],"tags":["meshery","meshmate","mesheryctl","meshery-ui"],"tags_descriptions":{},"views":38,"like_count":1,"has_summary":false,"last_poster_username":"hritesh94","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":2902,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5525,"title":"Trying to build server on meshery is failing","fancy_title":"Trying to build server on meshery is failing","slug":"trying-to-build-server-on-meshery-is-failing","posts_count":7,"reply_count":2,"highest_post_number":7,"image_url":null,"created_at":"2024-08-07T15:06:32.288Z","last_posted_at":"2024-08-08T20:53:30.351Z","bumped":true,"bumped_at":"2024-08-08T20:53:30.351Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community"],"tags_descriptions":{},"views":30,"like_count":0,"has_summary":false,"last_poster_username":"Yash_Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2875,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null}]},{"id":5533,"title":"Meshery Build And Release Meeting | Aug 8th 2024","fancy_title":"Meshery Build And Release Meeting | Aug 8th 2024","slug":"meshery-build-and-release-meeting-aug-8th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-08-08T15:03:59.357Z","last_posted_at":"2024-08-08T15:03:59.480Z","bumped":true,"bumped_at":"2024-08-08T15:03:59.480Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":9,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5526,"title":"Meshery Development Meeting | Aug 7th 2024","fancy_title":"Meshery Development Meeting | Aug 7th 2024","slug":"meshery-development-meeting-aug-7th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-08-07T15:25:28.642Z","last_posted_at":"2024-08-07T15:25:28.782Z","bumped":true,"bumped_at":"2024-08-07T15:25:28.782Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":5,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5482,"title":"Unable to access meshery server after meshery server status is running","fancy_title":"Unable to access meshery server after meshery server status is running","slug":"unable-to-access-meshery-server-after-meshery-server-status-is-running","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_1024x625.png","created_at":"2024-07-31T16:23:18.355Z","last_posted_at":"2024-07-31T16:23:18.468Z","bumped":true,"bumped_at":"2024-07-31T16:25:13.548Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1551,"height":948,"url":"https://discuss.layer5.io/uploads/default/original/2X/6/694ca1223ff76435fcb38a967512aac419c978fb.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":625,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_1024x625.png"},{"max_width":800,"max_height":800,"width":800,"height":488,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_800x488.png"},{"max_width":600,"max_height":600,"width":600,"height":366,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_600x366.png"},{"max_width":400,"max_height":400,"width":400,"height":244,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_400x244.png"},{"max_width":300,"max_height":300,"width":300,"height":183,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_300x183.png"},{"max_width":200,"max_height":200,"width":200,"height":122,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/694ca1223ff76435fcb38a967512aac419c978fb_2_200x122.png"}],"tags":["meshery","community","doubt"],"tags_descriptions":{},"views":16,"like_count":0,"has_summary":false,"last_poster_username":"Devesh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2875,"primary_group_id":null,"flair_group_id":null}]},{"id":1822,"title":"Successfully setup cloud based developer environment to contribute to Meshery using GitHub Codespaces","fancy_title":"Successfully setup cloud based developer environment to contribute to Meshery using GitHub Codespaces","slug":"successfully-setup-cloud-based-developer-environment-to-contribute-to-meshery-using-github-codespaces","posts_count":8,"reply_count":2,"highest_post_number":8,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_1024x502.png","created_at":"2023-01-13T12:34:36.693Z","last_posted_at":"2024-07-31T09:24:40.972Z","bumped":true,"bumped_at":"2024-07-31T09:24:40.972Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1901,"height":933,"url":"https://discuss.layer5.io/uploads/default/original/1X/3fa8544f6efd1f870e43227758d93d44d6238555.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":502,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_1024x502.png"},{"max_width":800,"max_height":800,"width":800,"height":392,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_800x392.png"},{"max_width":600,"max_height":600,"width":600,"height":294,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_600x294.png"},{"max_width":400,"max_height":400,"width":400,"height":196,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_400x196.png"},{"max_width":300,"max_height":300,"width":300,"height":147,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_300x147.png"},{"max_width":200,"max_height":200,"width":200,"height":98,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/3fa8544f6efd1f870e43227758d93d44d6238555_2_200x98.png"}],"tags":["meshery"],"tags_descriptions":{},"views":784,"like_count":12,"has_summary":false,"last_poster_username":"Awani_Alero","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":637,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":2853,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1429,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2885,"primary_group_id":null,"flair_group_id":null}]},{"id":5456,"title":"Looking for a Meshmate for LFX","fancy_title":"Looking for a Meshmate for LFX","slug":"looking-for-a-meshmate-for-lfx","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2024-07-20T11:59:44.367Z","last_posted_at":"2024-07-24T17:57:39.268Z","bumped":true,"bumped_at":"2024-07-24T17:57:39.268Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","layer5"],"tags_descriptions":{},"views":41,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2881,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5448,"title":"Meshery Development Meeting | July 17th 2024","fancy_title":"Meshery Development Meeting | July 17th 2024","slug":"meshery-development-meeting-july-17th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-07-17T18:12:09.452Z","last_posted_at":"2024-07-17T18:12:09.630Z","bumped":true,"bumped_at":"2024-07-17T18:12:09.630Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":15,"like_count":1,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":4176,"title":"Unable setup local Meshery development server","fancy_title":"Unable setup local Meshery development server","slug":"unable-setup-local-meshery-development-server","posts_count":11,"reply_count":7,"highest_post_number":13,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_1024x506.jpeg","created_at":"2023-11-11T17:50:15.758Z","last_posted_at":"2024-07-15T20:39:41.063Z","bumped":true,"bumped_at":"2024-07-15T20:39:41.063Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":949,"url":"https://discuss.layer5.io/uploads/default/original/2X/a/abe7a18567441c4ccf85622624413735c7a621f4.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":506,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_1024x506.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":395,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_800x395.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":296,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_600x296.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":197,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_400x197.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":148,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_300x148.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":98,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/abe7a18567441c4ccf85622624413735c7a621f4_2_200x98.jpeg"}],"tags":["meshery","doubt","help"],"tags_descriptions":{},"views":327,"like_count":3,"has_summary":false,"last_poster_username":"Redarcher9","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2102,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":621,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":2615,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2869,"primary_group_id":null,"flair_group_id":null}]},{"id":5443,"title":"Looking for a Meshmate as I want to apply for this project in LFX mentorship program","fancy_title":"Looking for a Meshmate as I want to apply for this project in LFX mentorship program","slug":"looking-for-a-meshmate-as-i-want-to-apply-for-this-project-in-lfx-mentorship-program","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-07-13T12:41:30.798Z","last_posted_at":"2024-07-13T13:58:51.601Z","bumped":true,"bumped_at":"2024-07-13T13:58:51.601Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community","websites","meshmate"],"tags_descriptions":{},"views":32,"like_count":2,"has_summary":false,"last_poster_username":"moin","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2874,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2121,"primary_group_id":null,"flair_group_id":null}]},{"id":5438,"title":"Meshery Build and Release Meeting | 11th July 2024","fancy_title":"Meshery Build and Release Meeting | 11th July 2024","slug":"meshery-build-and-release-meeting-11th-july-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-07-11T15:06:43.970Z","last_posted_at":"2024-07-11T15:06:44.124Z","bumped":true,"bumped_at":"2024-07-11T15:06:44.124Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":11,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":2928,"title":"Newcomers call experience and Star Meshery","fancy_title":"Newcomers call experience and Star Meshery","slug":"newcomers-call-experience-and-star-meshery","posts_count":13,"reply_count":5,"highest_post_number":13,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/f/f476bab5e84edfdfa15dedef0ec4b49d95a9fa72.png","created_at":"2023-06-22T12:52:08.145Z","last_posted_at":"2024-07-11T14:28:28.339Z","bumped":true,"bumped_at":"2024-07-11T14:28:28.339Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":285,"height":104,"url":"https://discuss.layer5.io/uploads/default/original/2X/f/f476bab5e84edfdfa15dedef0ec4b49d95a9fa72.png"},{"max_width":200,"max_height":200,"width":200,"height":72,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/f476bab5e84edfdfa15dedef0ec4b49d95a9fa72_2_200x72.png"}],"tags":["meshery","meetings","doubt"],"tags_descriptions":{"meetings":""},"views":848,"like_count":23,"has_summary":false,"last_poster_username":"Vidit_Kushwaha","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":969,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1581,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2862,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":2871,"primary_group_id":null,"flair_group_id":null}]},{"id":5433,"title":"Meshery Development Meeting | July 10th 2024","fancy_title":"Meshery Development Meeting | July 10th 2024","slug":"meshery-development-meeting-july-10th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-07-10T17:11:19.340Z","last_posted_at":"2024-07-10T17:11:19.474Z","bumped":true,"bumped_at":"2024-07-10T17:11:19.474Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":7,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5415,"title":"So many connected connections","fancy_title":"So many connected connections","slug":"so-many-connected-connections","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_1024x537.png","created_at":"2024-07-05T09:17:07.117Z","last_posted_at":"2024-07-05T09:17:07.287Z","bumped":true,"bumped_at":"2024-07-05T09:17:07.287Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1651,"height":867,"url":"https://discuss.layer5.io/uploads/default/original/2X/b/b96132443048488969f264b918b7520b6eb503e9.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":537,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_1024x537.png"},{"max_width":800,"max_height":800,"width":800,"height":420,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_800x420.png"},{"max_width":600,"max_height":600,"width":600,"height":315,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_600x315.png"},{"max_width":400,"max_height":400,"width":400,"height":210,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_400x210.png"},{"max_width":300,"max_height":300,"width":300,"height":157,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_300x157.png"},{"max_width":200,"max_height":200,"width":200,"height":105,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/b/b96132443048488969f264b918b7520b6eb503e9_2_200x105.png"}],"tags":["meshery"],"tags_descriptions":{},"views":5,"like_count":1,"has_summary":false,"last_poster_username":"innocentrda","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2747,"primary_group_id":null,"flair_group_id":null}]},{"id":5404,"title":"Meshery Development Meeting | July 3rd 2024","fancy_title":"Meshery Development Meeting | July 3rd 2024","slug":"meshery-development-meeting-july-3rd-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-07-03T19:33:01.760Z","last_posted_at":"2024-07-03T19:33:01.952Z","bumped":true,"bumped_at":"2024-07-03T19:33:01.952Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":12,"like_count":1,"has_summary":false,"last_poster_username":"vishalvivekm","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42}]},{"id":5389,"title":"Meshery Development Meeting | June 26th 2024","fancy_title":"Meshery Development Meeting | June 26th 2024","slug":"meshery-development-meeting-june-26th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-26T15:17:55.211Z","last_posted_at":"2024-06-26T15:17:55.336Z","bumped":true,"bumped_at":"2024-06-27T23:49:32.837Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":52,"like_count":1,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5393,"title":"Meshery Build and Release Meeting | June 27th 2024","fancy_title":"Meshery Build and Release Meeting | June 27th 2024","slug":"meshery-build-and-release-meeting-june-27th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-27T14:43:51.432Z","last_posted_at":"2024-06-27T14:43:51.573Z","bumped":true,"bumped_at":"2024-06-27T14:43:51.573Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":34,"like_count":1,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5391,"title":"[Building Meshery with WSL2] Error: invalid memory address or nil pointer dereference (solved)","fancy_title":"[Building Meshery with WSL2] Error: invalid memory address or nil pointer dereference (solved)","slug":"building-meshery-with-wsl2-error-invalid-memory-address-or-nil-pointer-dereference-solved","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_1024x317.jpeg","created_at":"2024-06-26T19:18:17.793Z","last_posted_at":"2024-06-26T19:24:00.602Z","bumped":true,"bumped_at":"2024-06-26T19:24:00.602Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1255,"height":389,"url":"https://discuss.layer5.io/uploads/default/original/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":317,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_1024x317.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":247,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_800x247.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":185,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_600x185.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":123,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_400x123.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":92,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_300x92.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":61,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/9/9d1ff05dd68b25559ce719c039f02bf40f657a60_2_200x61.jpeg"}],"tags":["meshery"],"tags_descriptions":{},"views":29,"like_count":2,"has_summary":false,"last_poster_username":"sujal.shah","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2831,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5361,"title":"Should relationship schemas be the source of truth when defining relationships?","fancy_title":"Should relationship schemas be the source of truth when defining relationships?","slug":"should-relationship-schemas-be-the-source-of-truth-when-defining-relationships","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_1024x609.png","created_at":"2024-06-22T17:08:26.938Z","last_posted_at":"2024-06-22T17:46:27.514Z","bumped":true,"bumped_at":"2024-06-22T17:46:27.514Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1531,"height":912,"url":"https://discuss.layer5.io/uploads/default/original/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":609,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_1024x609.png"},{"max_width":800,"max_height":800,"width":800,"height":476,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_800x476.png"},{"max_width":600,"max_height":600,"width":600,"height":357,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_600x357.png"},{"max_width":400,"max_height":400,"width":400,"height":238,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_400x238.png"},{"max_width":300,"max_height":300,"width":300,"height":178,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_300x178.png"},{"max_width":200,"max_height":200,"width":200,"height":119,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/5e0a255c8cdce4cfbd3382d1ea02629eba4369d1_2_200x119.png"}],"tags":["meshery","docs","relationships"],"tags_descriptions":{},"views":43,"like_count":1,"has_summary":false,"last_poster_username":"MUzairS15","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2747,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":147,"primary_group_id":null,"flair_group_id":42}]},{"id":5314,"title":"Accidently pushed my commit to running PR","fancy_title":"Accidently pushed my commit to running PR","slug":"accidently-pushed-my-commit-to-running-pr","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2024-06-18T22:19:51.688Z","last_posted_at":"2024-06-19T09:30:14.645Z","bumped":true,"bumped_at":"2024-06-19T09:30:14.645Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery"],"tags_descriptions":{},"views":49,"like_count":0,"has_summary":false,"last_poster_username":"Aviral0702","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2794,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":2022,"primary_group_id":null,"flair_group_id":null}]},{"id":5307,"title":"Error while setting up Meshery Dev Environment in Windows","fancy_title":"Error while setting up Meshery Dev Environment in Windows","slug":"error-while-setting-up-meshery-dev-environment-in-windows","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-17T09:08:04.389Z","last_posted_at":"2024-06-17T09:08:04.557Z","bumped":true,"bumped_at":"2024-06-17T09:08:04.557Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community","meshmate"],"tags_descriptions":{},"views":41,"like_count":0,"has_summary":false,"last_poster_username":"Aditya_Chari_S","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2826,"primary_group_id":null,"flair_group_id":null}]},{"id":5299,"title":"Where I can find the code of Layer5 Cloud ui?","fancy_title":"Where I can find the code of Layer5 Cloud ui?","slug":"where-i-can-find-the-code-of-layer5-cloud-ui","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-15T07:22:00.669Z","last_posted_at":"2024-06-15T07:22:00.845Z","bumped":true,"bumped_at":"2024-06-15T07:22:00.845Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","layer5"],"tags_descriptions":{},"views":43,"like_count":0,"has_summary":false,"last_poster_username":"Aviral0702","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2794,"primary_group_id":null,"flair_group_id":42}]},{"id":5292,"title":"Meshery Build and Release Meeting | June 13th 2024","fancy_title":"Meshery Build and Release Meeting | June 13th 2024","slug":"meshery-build-and-release-meeting-june-13th-2024","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-13T15:01:53.627Z","last_posted_at":"2024-06-13T15:01:53.838Z","bumped":true,"bumped_at":"2024-06-13T15:01:53.838Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meetings"],"tags_descriptions":{"meetings":""},"views":52,"like_count":1,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":5276,"title":"Error while setting up local dev environment for docker desktop extension","fancy_title":"Error while setting up local dev environment for docker desktop extension","slug":"error-while-setting-up-local-dev-environment-for-docker-desktop-extension","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-06-10T05:40:52.243Z","last_posted_at":"2024-06-10T05:40:52.437Z","bumped":true,"bumped_at":"2024-06-10T05:40:52.437Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meshmate","meshery-ui"],"tags_descriptions":{},"views":54,"like_count":0,"has_summary":false,"last_poster_username":"Faisal-imtiyaz123","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2729,"primary_group_id":null,"flair_group_id":null}]}]}} \ No newline at end of file diff --git a/docs/_data/discuss/mesheryctl.json b/docs/_data/discuss/mesheryctl.json index 77929d46d81..167d9e2883b 100644 --- a/docs/_data/discuss/mesheryctl.json +++ b/docs/_data/discuss/mesheryctl.json @@ -1 +1 @@ -{"users":[{"id":2194,"username":"Kunyue.Xing","name":"Kunyue Xing","avatar_template":"/letter_avatar_proxy/v4/letter/k/77aa72/{size}.png","trust_level":1},{"id":2579,"username":"Rudraksh_Tyagi","name":"Rudraksh Tyagi","avatar_template":"/user_avatar/discuss.layer5.io/rudraksh_tyagi/{size}/2364_2.png","trust_level":1},{"id":2902,"username":"hritesh94","name":"Hritesh Goldar","avatar_template":"/user_avatar/discuss.layer5.io/hritesh94/{size}/2629_2.png","trust_level":0},{"id":969,"username":"Sudhanshu_Dasgupta","name":"Sudhanshu Dasgupta","avatar_template":"/user_avatar/discuss.layer5.io/sudhanshu_dasgupta/{size}/997_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":2},{"id":3,"username":"Lee","name":"Lee Calcote","avatar_template":"/user_avatar/discuss.layer5.io/lee/{size}/7_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"admin":true,"moderator":true,"trust_level":2},{"id":1760,"username":"Shlok_Mishra","name":"Shlok Mishra","avatar_template":"/user_avatar/discuss.layer5.io/shlok_mishra/{size}/1691_2.png","trust_level":2},{"id":2729,"username":"Faisal-imtiyaz123","name":"Faisal Imtiyaz123","avatar_template":"/user_avatar/discuss.layer5.io/faisal-imtiyaz123/{size}/2461_2.png","trust_level":1},{"id":826,"username":"Yash.Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash.sharma/{size}/762_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":2},{"id":2573,"username":"AllenOps08","name":"Allen George Babu","avatar_template":"/user_avatar/discuss.layer5.io/allenops08/{size}/2356_2.png","trust_level":1},{"id":975,"username":"vishalvivekm","name":"Vivek Vishal","avatar_template":"/user_avatar/discuss.layer5.io/vishalvivekm/{size}/1038_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"admin":true,"moderator":true,"trust_level":2},{"id":2265,"username":"Althaf66","name":"ALTHAF","avatar_template":"/user_avatar/discuss.layer5.io/althaf66/{size}/2126_2.png","trust_level":1},{"id":1890,"username":"sandramsc","name":"Sandra Ashipala","avatar_template":"/user_avatar/discuss.layer5.io/sandramsc/{size}/1826_2.png","trust_level":2},{"id":788,"username":"Harsh.Mishra","name":"Harsh Mishra","avatar_template":"/user_avatar/discuss.layer5.io/harsh.mishra/{size}/691_2.png","trust_level":1},{"id":2305,"username":"Abdur","name":"Sheikh Abdur Rohit","avatar_template":"/user_avatar/discuss.layer5.io/abdur/{size}/2151_2.png","trust_level":1},{"id":2228,"username":"Harshith_Sudar","name":"Harshith","avatar_template":"/user_avatar/discuss.layer5.io/harshith_sudar/{size}/2105_2.png","trust_level":0},{"id":2177,"username":"Vihas.Makwana","name":"Vihas Makwana","avatar_template":"/user_avatar/discuss.layer5.io/vihas.makwana/{size}/2125_2.png","trust_level":0},{"id":1743,"username":"Shailika_Sahu","name":"Shailika Sahu","avatar_template":"/user_avatar/discuss.layer5.io/shailika_sahu/{size}/1675_2.png","trust_level":0},{"id":621,"username":"Yash_Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash_sharma/{size}/579_2.png","trust_level":2},{"id":1841,"username":"shivamtaneja","name":"Shivam Taneja","avatar_template":"/user_avatar/discuss.layer5.io/shivamtaneja/{size}/1784_2.png","trust_level":1},{"id":1924,"username":"Rajan_Kumar","name":"Rajan Kumar","avatar_template":"/user_avatar/discuss.layer5.io/rajan_kumar/{size}/1855_2.png","trust_level":1},{"id":1681,"username":"Rajdip019","name":"Rajdeep Sengupta","avatar_template":"/user_avatar/discuss.layer5.io/rajdip019/{size}/1608_2.png","trust_level":1},{"id":1354,"username":"Aabid.Sofi","name":"Aabid Sofi","avatar_template":"/user_avatar/discuss.layer5.io/aabid.sofi/{size}/1419_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"trust_level":2},{"id":1669,"username":"kituuu","name":"Karthik Ayangar","avatar_template":"/user_avatar/discuss.layer5.io/kituuu/{size}/1596_2.png","trust_level":0},{"id":698,"username":"abdullah1308","name":"Abdullah Rafi","avatar_template":"/user_avatar/discuss.layer5.io/abdullah1308/{size}/631_2.png","trust_level":1},{"id":1100,"username":"Philip-21","name":"Philip Obiora","avatar_template":"/user_avatar/discuss.layer5.io/philip-21/{size}/1039_2.png","trust_level":2},{"id":1537,"username":"parth721","name":"Partha Ghosh","avatar_template":"/user_avatar/discuss.layer5.io/parth721/{size}/1802_2.png","trust_level":1},{"id":1478,"username":"Zaki_Shaikh","name":"Muhammed Zaki","avatar_template":"/user_avatar/discuss.layer5.io/zaki_shaikh/{size}/1338_2.png","trust_level":2},{"id":1563,"username":"luigidematteis","name":"Luigi De Matteis","avatar_template":"/user_avatar/discuss.layer5.io/luigidematteis/{size}/1436_2.png","trust_level":0},{"id":132,"username":"asubedy","name":"Aaditya Narayan Subedy","avatar_template":"/user_avatar/discuss.layer5.io/asubedy/{size}/248_2.png","trust_level":2},{"id":1198,"username":"ShivangShandilya","name":"Shivang Shandilya","avatar_template":"/user_avatar/discuss.layer5.io/shivangshandilya/{size}/1087_2.png","trust_level":1},{"id":33,"username":"hexxdump","name":"Hussaina N","avatar_template":"/user_avatar/discuss.layer5.io/hexxdump/{size}/72_2.png","trust_level":1},{"id":683,"username":"Suhail.Khan","name":"Suhail Khan","avatar_template":"/user_avatar/discuss.layer5.io/suhail.khan/{size}/702_2.png","trust_level":1},{"id":31,"username":"aminos","name":"Anshumaan Kumar Prasad","avatar_template":"/user_avatar/discuss.layer5.io/aminos/{size}/1172_2.png","trust_level":1},{"id":14,"username":"Abhi","name":"Abhishek","avatar_template":"/user_avatar/discuss.layer5.io/abhi/{size}/32_2.png","trust_level":2},{"id":950,"username":"Azanul.Haque","name":"Azanul Haque","avatar_template":"/user_avatar/discuss.layer5.io/azanul.haque/{size}/1107_2.png","trust_level":1},{"id":1093,"username":"Santosh_Sankranthi_v_s_a","name":"Santosh Sankranthi v s a","avatar_template":"/user_avatar/discuss.layer5.io/santosh_sankranthi_v_s_a/{size}/1033_2.png","trust_level":1},{"id":974,"username":"Samarth_Mayya","name":"Samarth Mayya","avatar_template":"/user_avatar/discuss.layer5.io/samarth_mayya/{size}/963_2.png","trust_level":1},{"id":736,"username":"gopi.vaibhav","name":"Gopi Vaibhav","avatar_template":"/user_avatar/discuss.layer5.io/gopi.vaibhav/{size}/1671_2.png","trust_level":1},{"id":234,"username":"harkiratsm","name":"HARKIRAT SINGH","avatar_template":"/user_avatar/discuss.layer5.io/harkiratsm/{size}/442_2.png","trust_level":1},{"id":75,"username":"Leonard","name":"Nwobodo Leonard","avatar_template":"/user_avatar/discuss.layer5.io/leonard/{size}/129_2.png","trust_level":3},{"id":747,"username":"devilkiller-ag","name":"Ashmit JaiSarita Gupta","avatar_template":"/user_avatar/discuss.layer5.io/devilkiller-ag/{size}/660_2.png","trust_level":0},{"id":11,"username":"Anita-ihuman","name":"Anita-ihuman","avatar_template":"/user_avatar/discuss.layer5.io/anita-ihuman/{size}/28_2.png","trust_level":2},{"id":729,"username":"Ebi","name":"Ebi Kpemi-Ogokimi","avatar_template":"/user_avatar/discuss.layer5.io/ebi/{size}/649_2.png","trust_level":0},{"id":688,"username":"agnivesh_01","name":"Agnivesh Chaubey","avatar_template":"/user_avatar/discuss.layer5.io/agnivesh_01/{size}/618_2.png","trust_level":0},{"id":491,"username":"Antonette.Caldwell","name":"Antonette Caldwell","avatar_template":"/user_avatar/discuss.layer5.io/antonette.caldwell/{size}/485_2.png","trust_level":0},{"id":692,"username":"Pranav.Patil","name":"Pranav Patil","avatar_template":"/user_avatar/discuss.layer5.io/pranav.patil/{size}/698_2.png","trust_level":1},{"id":342,"username":"Kamal.Singh","name":"Kamal Singh","avatar_template":"/user_avatar/discuss.layer5.io/kamal.singh/{size}/466_2.png","trust_level":1},{"id":568,"username":"Franklin.Ekoh","name":"Franklin Ekoh","avatar_template":"/user_avatar/discuss.layer5.io/franklin.ekoh/{size}/573_2.png","trust_level":0},{"id":584,"username":"measutosh","name":"Asutosh Panda","avatar_template":"/user_avatar/discuss.layer5.io/measutosh/{size}/556_2.png","trust_level":0},{"id":164,"username":"Axit_Patel","name":"Axit Patel","avatar_template":"/user_avatar/discuss.layer5.io/axit_patel/{size}/297_2.png","trust_level":0},{"id":474,"username":"Pankaj.Khushalani","name":"Pankaj Khushalani","avatar_template":"/user_avatar/discuss.layer5.io/pankaj.khushalani/{size}/477_2.png","trust_level":1},{"id":22,"username":"alphaX86","name":"Aadhitya A","avatar_template":"/user_avatar/discuss.layer5.io/alphax86/{size}/51_2.png","trust_level":1}],"primary_groups":[],"flair_groups":[{"id":42,"name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_color":""}],"topic_list":{"can_create_topic":false,"more_topics_url":"/tag/mesheryctl?match_all_tags=true&page=1&tags%5B%5D=mesheryctl","per_page":30,"top_tags":["meshery","community","meetings","layer5","doubt","websites","meshmate","mesheryctl","meshery-ui","meshmap","weekly-summary","docs","newcomers","ux","error","meshery-adapter","devops","kubernetes","sistent","models","reactjs","announcements","cicd","components","discussion","docker-desktop","help","meshmodel","nighthawk","playground","setup-issue"],"tags":[{"id":71,"name":"mesheryctl","topic_count":31,"staff":false,"description":null}],"topics":[{"id":5597,"title":"Adapter unavailable when open Meshery playground on local host via Mesheryctl","fancy_title":"Adapter unavailable when open Meshery playground on local host via Mesheryctl","slug":"adapter-unavailable-when-open-meshery-playground-on-local-host-via-mesheryctl","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_1023x638.png","created_at":"2024-08-19T05:11:33.775Z","last_posted_at":"2024-08-19T07:32:29.729Z","bumped":true,"bumped_at":"2024-08-19T07:32:29.729Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2764,"height":1724,"url":"https://discuss.layer5.io/uploads/default/original/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d.png"},{"max_width":1024,"max_height":1024,"width":1023,"height":638,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_1023x638.png"},{"max_width":800,"max_height":800,"width":800,"height":498,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_800x498.png"},{"max_width":600,"max_height":600,"width":600,"height":374,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_600x374.png"},{"max_width":400,"max_height":400,"width":400,"height":249,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_400x249.png"},{"max_width":300,"max_height":300,"width":300,"height":187,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_300x187.png"},{"max_width":200,"max_height":200,"width":200,"height":124,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_200x124.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":13,"like_count":1,"has_summary":false,"last_poster_username":"Rudraksh_Tyagi","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2194,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2579,"primary_group_id":null,"flair_group_id":null}]},{"id":5540,"title":"Help needed to setup Meshery locally","fancy_title":"Help needed to setup Meshery locally","slug":"help-needed-to-setup-meshery-locally","posts_count":9,"reply_count":2,"highest_post_number":9,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c.jpeg","created_at":"2024-08-09T06:40:26.319Z","last_posted_at":"2024-08-09T12:03:43.734Z","bumped":true,"bumped_at":"2024-08-09T12:03:43.734Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":856,"height":659,"url":"https://discuss.layer5.io/uploads/default/original/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":615,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_800x615.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":461,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_600x461.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":307,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_400x307.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":230,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_300x230.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":153,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_200x153.jpeg"}],"tags":["meshery","meshmate","mesheryctl","meshery-ui"],"tags_descriptions":{},"views":37,"like_count":1,"has_summary":false,"last_poster_username":"hritesh94","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":2902,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5392,"title":"[Open Discussion] Consistency and Test Cases for Mesheryctl (Meshery CLI)","fancy_title":"[Open Discussion] Consistency and Test Cases for Mesheryctl (Meshery CLI)","slug":"open-discussion-consistency-and-test-cases-for-mesheryctl-meshery-cli","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2024-06-27T13:29:57.604Z","last_posted_at":"2024-06-27T22:35:02.026Z","bumped":true,"bumped_at":"2024-06-27T22:35:02.026Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl","cli"],"tags_descriptions":{},"views":64,"like_count":1,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1760,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5200,"title":"Looking for a meshmate to help with first PR","fancy_title":"Looking for a meshmate to help with first PR","slug":"looking-for-a-meshmate-to-help-with-first-pr","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-05-30T14:54:11.455Z","last_posted_at":"2024-05-30T15:21:44.720Z","bumped":true,"bumped_at":"2024-05-30T15:21:44.720Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meshmate","mesheryctl","meshery-ui","meshmap"],"tags_descriptions":{},"views":75,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2729,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":4862,"title":"Not able to access Ports during mesheryctl system start","fancy_title":"Not able to access Ports during mesheryctl system start","slug":"not-able-to-access-ports-during-mesheryctl-system-start","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2024-03-20T14:22:15.519Z","last_posted_at":"2024-04-02T17:09:50.834Z","bumped":true,"bumped_at":"2024-04-02T17:09:50.834Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":202,"like_count":4,"has_summary":false,"last_poster_username":"vishalvivekm","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2573,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42}]},{"id":4769,"title":"Tip: Series of commands to generate Meshery's model registry","fancy_title":"Tip: Series of commands to generate Meshery’s model registry","slug":"tip-series-of-commands-to-generate-mesherys-model-registry","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-03-05T21:08:15.434Z","last_posted_at":"2024-03-05T21:08:15.692Z","bumped":true,"bumped_at":"2024-03-05T23:23:02.788Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl","models","registry"],"tags_descriptions":{},"views":146,"like_count":0,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":4729,"title":"Error while connecting minikube on meshery","fancy_title":"Error while connecting minikube on meshery","slug":"error-while-connecting-minikube-on-meshery","posts_count":8,"reply_count":4,"highest_post_number":8,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_1024x241.png","created_at":"2024-02-27T19:49:17.969Z","last_posted_at":"2024-02-28T06:45:12.972Z","bumped":true,"bumped_at":"2024-02-28T06:45:12.972Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1148,"height":271,"url":"https://discuss.layer5.io/uploads/default/original/2X/6/647938555bf6f688e5948dbcd556a7f31295c198.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":241,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_1024x241.png"},{"max_width":800,"max_height":800,"width":800,"height":188,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_800x188.png"},{"max_width":600,"max_height":600,"width":600,"height":141,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_600x141.png"},{"max_width":400,"max_height":400,"width":400,"height":94,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_400x94.png"},{"max_width":300,"max_height":300,"width":300,"height":70,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_300x70.png"},{"max_width":200,"max_height":200,"width":200,"height":47,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_200x47.png"}],"tags":["meshery","mesheryctl","minikube"],"tags_descriptions":{},"views":290,"like_count":0,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2265,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":4203,"title":"Error while installing kubernetes","fancy_title":"Error while installing kubernetes","slug":"error-while-installing-kubernetes","posts_count":8,"reply_count":3,"highest_post_number":8,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a.png","created_at":"2023-11-17T09:50:47.335Z","last_posted_at":"2024-01-06T19:48:47.490Z","bumped":true,"bumped_at":"2024-01-07T12:15:59.462Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":768,"height":109,"url":"https://discuss.layer5.io/uploads/default/original/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a.png"},{"max_width":600,"max_height":600,"width":600,"height":85,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a_2_600x85.png"},{"max_width":400,"max_height":400,"width":400,"height":56,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a_2_400x56.png"},{"max_width":300,"max_height":300,"width":300,"height":42,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a_2_300x42.png"},{"max_width":200,"max_height":200,"width":200,"height":28,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a_2_200x28.png"}],"tags":["mesheryctl","kubernetes"],"tags_descriptions":{},"views":346,"like_count":4,"has_summary":false,"last_poster_username":"Abdur","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster, Accepted Answer","user_id":1890,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":788,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2305,"primary_group_id":null,"flair_group_id":null}]},{"id":4332,"title":"What port does mesheryctl work on generally?","fancy_title":"What port does mesheryctl work on generally?","slug":"what-port-does-mesheryctl-work-on-generally","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2023-12-12T19:14:38.103Z","last_posted_at":"2023-12-12T19:18:04.646Z","bumped":true,"bumped_at":"2023-12-12T19:18:04.646Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":215,"like_count":0,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2228,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":4284,"title":"Docker compose not available issue while running mesheryctl system start command","fancy_title":"Docker compose not available issue while running mesheryctl system start command","slug":"docker-compose-not-available-issue-while-running-mesheryctl-system-start-command","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_1024x195.png","created_at":"2023-12-04T13:36:32.550Z","last_posted_at":"2023-12-04T13:47:56.215Z","bumped":true,"bumped_at":"2023-12-04T13:47:56.215Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1761,"height":337,"url":"https://discuss.layer5.io/uploads/default/original/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":195,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_1024x195.png"},{"max_width":800,"max_height":800,"width":800,"height":153,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_800x153.png"},{"max_width":600,"max_height":600,"width":600,"height":114,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_600x114.png"},{"max_width":400,"max_height":400,"width":400,"height":76,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_400x76.png"},{"max_width":300,"max_height":300,"width":300,"height":57,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_300x57.png"},{"max_width":200,"max_height":200,"width":200,"height":38,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_200x38.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":288,"like_count":2,"has_summary":false,"last_poster_username":"Shlok_Mishra","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":1760,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2177,"primary_group_id":null,"flair_group_id":null}]},{"id":3517,"title":"While Setting Environment for Meshery, Facing issue","fancy_title":"While Setting Environment for Meshery, Facing issue","slug":"while-setting-environment-for-meshery-facing-issue","posts_count":12,"reply_count":9,"highest_post_number":13,"image_url":null,"created_at":"2023-09-05T08:17:01.125Z","last_posted_at":"2023-09-29T18:43:12.784Z","bumped":true,"bumped_at":"2023-09-29T18:43:12.784Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt","mesheryctl"],"tags_descriptions":{},"views":433,"like_count":5,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1743,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1841,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1924,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":3398,"title":"Invalid Component Error while starting meshery system","fancy_title":"Invalid Component Error while starting meshery system","slug":"invalid-component-error-while-starting-meshery-system","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/4/4733b621567b772112e69870783bfdfef14ca123.png","created_at":"2023-08-18T07:11:09.570Z","last_posted_at":"2023-08-18T19:54:36.146Z","bumped":true,"bumped_at":"2023-08-18T19:54:36.146Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":519,"height":138,"url":"https://discuss.layer5.io/uploads/default/original/2X/4/4733b621567b772112e69870783bfdfef14ca123.png"},{"max_width":400,"max_height":400,"width":400,"height":106,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/4/4733b621567b772112e69870783bfdfef14ca123_2_400x106.png"},{"max_width":300,"max_height":300,"width":300,"height":79,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/4/4733b621567b772112e69870783bfdfef14ca123_2_300x79.png"},{"max_width":200,"max_height":200,"width":200,"height":53,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/4/4733b621567b772112e69870783bfdfef14ca123_2_200x53.png"}],"tags":["meshery","mesheryctl","error"],"tags_descriptions":{},"views":303,"like_count":0,"has_summary":false,"last_poster_username":"Yash_Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":1681,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":1354,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null}]},{"id":3393,"title":"Mesheryctl is not updating on the latest macOS Sonoma beta. Homebrew is giving me some error. Please help","fancy_title":"Mesheryctl is not updating on the latest macOS Sonoma beta. Homebrew is giving me some error. Please help","slug":"mesheryctl-is-not-updating-on-the-latest-macos-sonoma-beta-homebrew-is-giving-me-some-error-please-help","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_1024x661.jpeg","created_at":"2023-08-17T18:02:39.821Z","last_posted_at":"2023-08-17T18:02:39.962Z","bumped":true,"bumped_at":"2023-08-17T18:02:39.962Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1241,"url":"https://discuss.layer5.io/uploads/default/original/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":661,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_1024x661.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":517,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_800x517.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":387,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_600x387.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":258,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_400x258.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":193,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_300x193.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":129,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_200x129.jpeg"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":290,"like_count":0,"has_summary":false,"last_poster_username":"kituuu","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":1669,"primary_group_id":null,"flair_group_id":null}]},{"id":3347,"title":"New Performance features in mesheryctl","fancy_title":"New Performance features in mesheryctl","slug":"new-performance-features-in-mesheryctl","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2023-08-09T10:22:02.044Z","last_posted_at":"2023-08-10T13:50:25.400Z","bumped":true,"bumped_at":"2023-08-10T13:50:25.400Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","mesheryctl","performance"],"tags_descriptions":{},"views":271,"like_count":5,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":698,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1100,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":3307,"title":"Certificates signed by unknown authority","fancy_title":"Certificates signed by unknown authority","slug":"certificates-signed-by-unknown-authority","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_1024x576.png","created_at":"2023-08-03T09:21:00.874Z","last_posted_at":"2023-08-06T15:16:54.583Z","bumped":true,"bumped_at":"2023-08-06T15:16:54.583Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1080,"url":"https://discuss.layer5.io/uploads/default/original/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":576,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_1024x576.png"},{"max_width":800,"max_height":800,"width":800,"height":450,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_800x450.png"},{"max_width":600,"max_height":600,"width":600,"height":337,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_600x337.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":168,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_300x168.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_200x112.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":462,"like_count":2,"has_summary":false,"last_poster_username":"parth721","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1537,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":1478,"primary_group_id":null,"flair_group_id":null}]},{"id":3200,"title":"`systemctl` unable to get context even if they are available","fancy_title":"`systemctl` unable to get context even if they are available","slug":"systemctl-unable-to-get-context-even-if-they-are-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_1024x272.png","created_at":"2023-07-20T10:19:38.095Z","last_posted_at":"2023-07-20T10:19:38.254Z","bumped":true,"bumped_at":"2023-07-20T10:19:38.254Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1070,"height":285,"url":"https://discuss.layer5.io/uploads/default/original/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":272,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_1024x272.png"},{"max_width":800,"max_height":800,"width":800,"height":213,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_800x213.png"},{"max_width":600,"max_height":600,"width":600,"height":159,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_600x159.png"},{"max_width":400,"max_height":400,"width":400,"height":106,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_400x106.png"},{"max_width":300,"max_height":300,"width":300,"height":79,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_300x79.png"},{"max_width":200,"max_height":200,"width":200,"height":53,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_200x53.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":308,"like_count":0,"has_summary":false,"last_poster_username":"luigidematteis","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":1563,"primary_group_id":null,"flair_group_id":null}]},{"id":3132,"title":"Can we login using `mesheryctl` without opening browser, with token or something similar","fancy_title":"Can we login using `mesheryctl` without opening browser, with token or something similar","slug":"can-we-login-using-mesheryctl-without-opening-browser-with-token-or-something-similar","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2023-07-13T18:10:34.450Z","last_posted_at":"2023-07-15T00:58:32.029Z","bumped":true,"bumped_at":"2023-07-15T00:58:32.029Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":434,"like_count":0,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":132,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":2578,"title":"Error while running mesheryctl system login command","fancy_title":"Error while running mesheryctl system login command","slug":"error-while-running-mesheryctl-system-login-command","posts_count":9,"reply_count":6,"highest_post_number":9,"image_url":null,"created_at":"2023-04-20T15:38:21.992Z","last_posted_at":"2023-07-04T11:31:05.634Z","bumped":true,"bumped_at":"2023-07-04T11:31:05.634Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":391,"like_count":1,"has_summary":false,"last_poster_username":"Suhail.Khan","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1198,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":33,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":683,"primary_group_id":null,"flair_group_id":null}]},{"id":2761,"title":"Mesheryctl system login not stopping (after signed in successfully)","fancy_title":"Mesheryctl system login not stopping (after signed in successfully)","slug":"mesheryctl-system-login-not-stopping-after-signed-in-successfully","posts_count":8,"reply_count":3,"highest_post_number":8,"image_url":null,"created_at":"2023-05-19T08:56:02.317Z","last_posted_at":"2023-05-25T18:51:08.318Z","bumped":true,"bumped_at":"2023-05-25T18:51:08.318Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":387,"like_count":4,"has_summary":false,"last_poster_username":"aminos","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":31,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":14,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":950,"primary_group_id":null,"flair_group_id":null}]},{"id":2593,"title":"Uneven way through which meshery opens up","fancy_title":"Uneven way through which meshery opens up","slug":"uneven-way-through-which-meshery-opens-up","posts_count":6,"reply_count":2,"highest_post_number":7,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_1024x491.jpeg","created_at":"2023-04-22T10:39:32.794Z","last_posted_at":"2023-04-24T21:07:36.711Z","bumped":true,"bumped_at":"2023-04-24T21:07:36.711Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1432,"height":688,"url":"https://discuss.layer5.io/uploads/default/original/2X/d/d70122958b3dee39862d797a881201f4fe43b383.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":491,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_1024x491.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":384,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_800x384.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":288,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_600x288.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":192,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_400x192.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":144,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_300x144.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":96,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_200x96.jpeg"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":372,"like_count":3,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":1093,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":950,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":2289,"title":"Unable to start Meshery","fancy_title":"Unable to start Meshery","slug":"unable-to-start-meshery","posts_count":13,"reply_count":9,"highest_post_number":13,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_1024x477.png","created_at":"2023-03-02T02:17:44.628Z","last_posted_at":"2023-03-05T19:31:41.968Z","bumped":true,"bumped_at":"2023-03-05T19:31:41.968Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1452,"height":677,"url":"https://discuss.layer5.io/uploads/default/original/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":477,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_1024x477.png"},{"max_width":800,"max_height":800,"width":800,"height":373,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_800x373.png"},{"max_width":600,"max_height":600,"width":600,"height":279,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_600x279.png"},{"max_width":400,"max_height":400,"width":400,"height":186,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_400x186.png"},{"max_width":300,"max_height":300,"width":300,"height":139,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_300x139.png"},{"max_width":200,"max_height":200,"width":200,"height":93,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_200x93.png"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":467,"like_count":3,"has_summary":false,"last_poster_username":"Samarth_Mayya","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":974,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":1733,"title":"Facing an error in setting up meshery locally","fancy_title":"Facing an error in setting up meshery locally","slug":"facing-an-error-in-setting-up-meshery-locally","posts_count":10,"reply_count":7,"highest_post_number":10,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_1024x393.png","created_at":"2022-12-21T06:21:35.182Z","last_posted_at":"2022-12-23T12:41:51.234Z","bumped":true,"bumped_at":"2022-12-23T12:41:51.234Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1580,"height":607,"url":"https://discuss.layer5.io/uploads/default/original/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":393,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_1024x393.png"},{"max_width":800,"max_height":800,"width":800,"height":307,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_800x307.png"},{"max_width":600,"max_height":600,"width":600,"height":230,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_600x230.png"},{"max_width":400,"max_height":400,"width":400,"height":153,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_400x153.png"},{"max_width":300,"max_height":300,"width":300,"height":115,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_300x115.png"},{"max_width":200,"max_height":200,"width":200,"height":76,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_200x76.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":544,"like_count":4,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster, Accepted Answer","user_id":736,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":234,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":75,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":1721,"title":"Error installing Meshery on Ubuntu 22.04","fancy_title":"Error installing Meshery on Ubuntu 22.04","slug":"error-installing-meshery-on-ubuntu-22-04","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2022-12-17T03:40:32.909Z","last_posted_at":"2022-12-21T08:39:49.932Z","bumped":true,"bumped_at":"2022-12-21T08:39:49.932Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt","mesheryctl"],"tags_descriptions":{},"views":379,"like_count":0,"has_summary":false,"last_poster_username":"Anita-ihuman","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":747,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":234,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":11,"primary_group_id":null,"flair_group_id":null}]},{"id":1693,"title":"Error deploying mesheryctl","fancy_title":"Error deploying mesheryctl","slug":"error-deploying-mesheryctl","posts_count":11,"reply_count":3,"highest_post_number":11,"image_url":"https://discuss.layer5.io/uploads/default/original/1X/ce65538391191f085beb201b066bdbd42c25440c.png","created_at":"2022-12-07T17:45:00.566Z","last_posted_at":"2022-12-19T22:07:24.692Z","bumped":true,"bumped_at":"2022-12-19T22:07:24.692Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":835,"height":657,"url":"https://discuss.layer5.io/uploads/default/original/1X/ce65538391191f085beb201b066bdbd42c25440c.png"},{"max_width":800,"max_height":800,"width":800,"height":629,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_800x629.png"},{"max_width":600,"max_height":600,"width":600,"height":472,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_600x472.png"},{"max_width":400,"max_height":400,"width":400,"height":314,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_400x314.png"},{"max_width":300,"max_height":300,"width":300,"height":236,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_300x236.png"},{"max_width":200,"max_height":200,"width":200,"height":157,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_200x157.png"}],"tags":["meshery","layer5","mesheryctl","error"],"tags_descriptions":{},"views":687,"like_count":0,"has_summary":false,"last_poster_username":"Ebi","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":729,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":1644,"title":"Not able to choose an adapter an install mesheryctl command","fancy_title":"Not able to choose an adapter an install mesheryctl command","slug":"not-able-to-choose-an-adapter-an-install-mesheryctl-command","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_1024x576.png","created_at":"2022-11-08T14:14:28.390Z","last_posted_at":"2022-11-08T16:55:23.897Z","bumped":true,"bumped_at":"2022-11-08T16:55:23.897Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1080,"url":"https://discuss.layer5.io/uploads/default/original/1X/058a1d0fc02212235b04100d4437cb439f3dc28b.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":576,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_1024x576.png"},{"max_width":800,"max_height":800,"width":800,"height":450,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_800x450.png"},{"max_width":600,"max_height":600,"width":600,"height":337,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_600x337.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":168,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_300x168.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_200x112.png"}],"tags":["community","layer5","doubt","mesheryctl","meshery-adapter"],"tags_descriptions":{},"views":441,"like_count":2,"has_summary":false,"last_poster_username":"Kamal.Singh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":688,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":33,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":491,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":692,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":342,"primary_group_id":null,"flair_group_id":null}]},{"id":1544,"title":"Unable to setup meshery docs on local (mac)","fancy_title":"Unable to setup meshery docs on local (mac)","slug":"unable-to-setup-meshery-docs-on-local-mac","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_1024x330.png","created_at":"2022-10-06T11:09:35.270Z","last_posted_at":"2022-10-06T11:09:35.478Z","bumped":true,"bumped_at":"2022-10-07T07:46:14.715Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2878,"height":928,"url":"https://discuss.layer5.io/uploads/default/original/1X/fd93033b53dab57622bb0f256e272b064abb1f94.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":330,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_1024x330.png"},{"max_width":800,"max_height":800,"width":800,"height":257,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_800x257.png"},{"max_width":600,"max_height":600,"width":600,"height":193,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_600x193.png"},{"max_width":400,"max_height":400,"width":400,"height":128,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_400x128.png"},{"max_width":300,"max_height":300,"width":300,"height":96,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_300x96.png"},{"max_width":200,"max_height":200,"width":200,"height":64,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_200x64.png"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":383,"like_count":0,"has_summary":false,"last_poster_username":"Franklin.Ekoh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":568,"primary_group_id":null,"flair_group_id":null}]},{"id":1501,"title":"Issue while setting up meshery using GItpod","fancy_title":"Issue while setting up meshery using GItpod","slug":"issue-while-setting-up-meshery-using-gitpod","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/original/1X/456154a8125d86462659ceab5ba52f1bcad61472.png","created_at":"2022-09-27T11:59:53.664Z","last_posted_at":"2022-09-27T12:03:23.747Z","bumped":true,"bumped_at":"2022-09-27T12:03:23.747Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":855,"height":481,"url":"https://discuss.layer5.io/uploads/default/original/1X/456154a8125d86462659ceab5ba52f1bcad61472.png"},{"max_width":800,"max_height":800,"width":800,"height":450,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_800x450.png"},{"max_width":600,"max_height":600,"width":600,"height":337,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_600x337.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":168,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_300x168.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_200x112.png"}],"tags":["meshery","community","doubt","mesheryctl"],"tags_descriptions":{},"views":337,"like_count":0,"has_summary":false,"last_poster_username":"Kamal.Singh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":584,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":342,"primary_group_id":null,"flair_group_id":null}]},{"id":1162,"title":"How to run Mesheryctl locally in my system","fancy_title":"How to run Mesheryctl locally in my system","slug":"how-to-run-mesheryctl-locally-in-my-system","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2022-09-03T05:27:31.951Z","last_posted_at":"2022-09-20T04:17:32.231Z","bumped":true,"bumped_at":"2022-09-20T04:17:32.231Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":405,"like_count":1,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":164,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":474,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":1000,"title":"Mesheryctl app import: Design Spec Review","fancy_title":"Mesheryctl app import: Design Spec Review","slug":"mesheryctl-app-import-design-spec-review","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2022-07-27T15:27:25.654Z","last_posted_at":"2022-08-05T07:23:07.420Z","bumped":true,"bumped_at":"2022-08-05T07:23:07.420Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl","design-review","kubernetes-manifest","helm-chart"],"tags_descriptions":{},"views":504,"like_count":1,"has_summary":false,"last_poster_username":"alphaX86","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":22,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":977,"title":"Meshery Not Starting (mesheryctl)","fancy_title":"Meshery Not Starting (mesheryctl)","slug":"meshery-not-starting-mesheryctl","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_1024x214.png","created_at":"2022-07-27T04:34:55.867Z","last_posted_at":"2022-07-27T09:23:10.178Z","bumped":true,"bumped_at":"2022-07-27T09:23:10.178Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1100,"height":230,"url":"https://discuss.layer5.io/uploads/default/original/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":214,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_1024x214.png"},{"max_width":800,"max_height":800,"width":800,"height":167,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_800x167.png"},{"max_width":600,"max_height":600,"width":600,"height":125,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_600x125.png"},{"max_width":400,"max_height":400,"width":400,"height":83,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_400x83.png"},{"max_width":300,"max_height":300,"width":300,"height":62,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_300x62.png"},{"max_width":200,"max_height":200,"width":200,"height":41,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_200x41.png"}],"tags":["community","mesheryctl"],"tags_descriptions":{},"views":336,"like_count":2,"has_summary":false,"last_poster_username":"harkiratsm","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":234,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":22,"primary_group_id":null,"flair_group_id":null}]}]}} \ No newline at end of file +{"users":[{"id":2194,"username":"Kunyue.Xing","name":"Kunyue Xing","avatar_template":"/letter_avatar_proxy/v4/letter/k/77aa72/{size}.png","trust_level":1},{"id":2579,"username":"Rudraksh_Tyagi","name":"Rudraksh Tyagi","avatar_template":"/user_avatar/discuss.layer5.io/rudraksh_tyagi/{size}/2364_2.png","trust_level":1},{"id":2902,"username":"hritesh94","name":"Hritesh Goldar","avatar_template":"/user_avatar/discuss.layer5.io/hritesh94/{size}/2629_2.png","trust_level":0},{"id":969,"username":"Sudhanshu_Dasgupta","name":"Sudhanshu Dasgupta","avatar_template":"/user_avatar/discuss.layer5.io/sudhanshu_dasgupta/{size}/997_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":2},{"id":3,"username":"Lee","name":"Lee Calcote","avatar_template":"/user_avatar/discuss.layer5.io/lee/{size}/7_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"admin":true,"moderator":true,"trust_level":2},{"id":1760,"username":"Shlok_Mishra","name":"Shlok Mishra","avatar_template":"/user_avatar/discuss.layer5.io/shlok_mishra/{size}/1691_2.png","trust_level":2},{"id":2729,"username":"Faisal-imtiyaz123","name":"Faisal Imtiyaz123","avatar_template":"/user_avatar/discuss.layer5.io/faisal-imtiyaz123/{size}/2461_2.png","trust_level":1},{"id":826,"username":"Yash.Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash.sharma/{size}/762_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"moderator":true,"trust_level":2},{"id":2573,"username":"AllenOps08","name":"Allen George Babu","avatar_template":"/user_avatar/discuss.layer5.io/allenops08/{size}/2356_2.png","trust_level":1},{"id":975,"username":"vishalvivekm","name":"Vivek Vishal","avatar_template":"/user_avatar/discuss.layer5.io/vishalvivekm/{size}/1038_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"admin":true,"moderator":true,"trust_level":2},{"id":2265,"username":"Althaf66","name":"ALTHAF","avatar_template":"/user_avatar/discuss.layer5.io/althaf66/{size}/2126_2.png","trust_level":1},{"id":1890,"username":"sandramsc","name":"Sandra Ashipala","avatar_template":"/user_avatar/discuss.layer5.io/sandramsc/{size}/1826_2.png","trust_level":2},{"id":788,"username":"Harsh.Mishra","name":"Harsh Mishra","avatar_template":"/user_avatar/discuss.layer5.io/harsh.mishra/{size}/691_2.png","trust_level":1},{"id":2305,"username":"Abdur","name":"Sheikh Abdur Rohit","avatar_template":"/user_avatar/discuss.layer5.io/abdur/{size}/2151_2.png","trust_level":1},{"id":2228,"username":"Harshith_Sudar","name":"Harshith","avatar_template":"/user_avatar/discuss.layer5.io/harshith_sudar/{size}/2105_2.png","trust_level":0},{"id":2177,"username":"Vihas.Makwana","name":"Vihas Makwana","avatar_template":"/user_avatar/discuss.layer5.io/vihas.makwana/{size}/2125_2.png","trust_level":0},{"id":1743,"username":"Shailika_Sahu","name":"Shailika Sahu","avatar_template":"/user_avatar/discuss.layer5.io/shailika_sahu/{size}/1675_2.png","trust_level":0},{"id":621,"username":"Yash_Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash_sharma/{size}/579_2.png","trust_level":2},{"id":1841,"username":"shivamtaneja","name":"Shivam Taneja","avatar_template":"/user_avatar/discuss.layer5.io/shivamtaneja/{size}/1784_2.png","trust_level":1},{"id":1924,"username":"Rajan_Kumar","name":"Rajan Kumar","avatar_template":"/user_avatar/discuss.layer5.io/rajan_kumar/{size}/1855_2.png","trust_level":1},{"id":1681,"username":"Rajdip019","name":"Rajdeep Sengupta","avatar_template":"/user_avatar/discuss.layer5.io/rajdip019/{size}/1608_2.png","trust_level":1},{"id":1354,"username":"Aabid.Sofi","name":"Aabid Sofi","avatar_template":"/user_avatar/discuss.layer5.io/aabid.sofi/{size}/1419_2.png","flair_name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_group_id":42,"trust_level":2},{"id":1669,"username":"kituuu","name":"Karthik Ayangar","avatar_template":"/user_avatar/discuss.layer5.io/kituuu/{size}/1596_2.png","trust_level":0},{"id":698,"username":"abdullah1308","name":"Abdullah Rafi","avatar_template":"/user_avatar/discuss.layer5.io/abdullah1308/{size}/631_2.png","trust_level":1},{"id":1100,"username":"Philip-21","name":"Philip Obiora","avatar_template":"/user_avatar/discuss.layer5.io/philip-21/{size}/1039_2.png","trust_level":2},{"id":1537,"username":"parth721","name":"Partha Ghosh","avatar_template":"/user_avatar/discuss.layer5.io/parth721/{size}/1802_2.png","trust_level":1},{"id":1478,"username":"Zaki_Shaikh","name":"Muhammed Zaki","avatar_template":"/user_avatar/discuss.layer5.io/zaki_shaikh/{size}/1338_2.png","trust_level":2},{"id":1563,"username":"luigidematteis","name":"Luigi De Matteis","avatar_template":"/user_avatar/discuss.layer5.io/luigidematteis/{size}/1436_2.png","trust_level":0},{"id":132,"username":"asubedy","name":"Aaditya Narayan Subedy","avatar_template":"/user_avatar/discuss.layer5.io/asubedy/{size}/248_2.png","trust_level":2},{"id":1198,"username":"ShivangShandilya","name":"Shivang Shandilya","avatar_template":"/user_avatar/discuss.layer5.io/shivangshandilya/{size}/1087_2.png","trust_level":1},{"id":33,"username":"hexxdump","name":"Hussaina N","avatar_template":"/user_avatar/discuss.layer5.io/hexxdump/{size}/72_2.png","trust_level":1},{"id":683,"username":"Suhail.Khan","name":"Suhail Khan","avatar_template":"/user_avatar/discuss.layer5.io/suhail.khan/{size}/702_2.png","trust_level":1},{"id":31,"username":"aminos","name":"Anshumaan Kumar Prasad","avatar_template":"/user_avatar/discuss.layer5.io/aminos/{size}/1172_2.png","trust_level":1},{"id":14,"username":"Abhi","name":"Abhishek","avatar_template":"/user_avatar/discuss.layer5.io/abhi/{size}/32_2.png","trust_level":2},{"id":950,"username":"Azanul.Haque","name":"Azanul Haque","avatar_template":"/user_avatar/discuss.layer5.io/azanul.haque/{size}/1107_2.png","trust_level":1},{"id":1093,"username":"Santosh_Sankranthi_v_s_a","name":"Santosh Sankranthi v s a","avatar_template":"/user_avatar/discuss.layer5.io/santosh_sankranthi_v_s_a/{size}/1033_2.png","trust_level":1},{"id":974,"username":"Samarth_Mayya","name":"Samarth Mayya","avatar_template":"/user_avatar/discuss.layer5.io/samarth_mayya/{size}/963_2.png","trust_level":1},{"id":736,"username":"gopi.vaibhav","name":"Gopi Vaibhav","avatar_template":"/user_avatar/discuss.layer5.io/gopi.vaibhav/{size}/1671_2.png","trust_level":1},{"id":234,"username":"harkiratsm","name":"HARKIRAT SINGH","avatar_template":"/user_avatar/discuss.layer5.io/harkiratsm/{size}/442_2.png","trust_level":1},{"id":75,"username":"Leonard","name":"Nwobodo Leonard","avatar_template":"/user_avatar/discuss.layer5.io/leonard/{size}/129_2.png","trust_level":3},{"id":747,"username":"devilkiller-ag","name":"Ashmit JaiSarita Gupta","avatar_template":"/user_avatar/discuss.layer5.io/devilkiller-ag/{size}/660_2.png","trust_level":0},{"id":11,"username":"Anita-ihuman","name":"Anita-ihuman","avatar_template":"/user_avatar/discuss.layer5.io/anita-ihuman/{size}/28_2.png","trust_level":2},{"id":729,"username":"Ebi","name":"Ebi Kpemi-Ogokimi","avatar_template":"/user_avatar/discuss.layer5.io/ebi/{size}/649_2.png","trust_level":0},{"id":688,"username":"agnivesh_01","name":"Agnivesh Chaubey","avatar_template":"/user_avatar/discuss.layer5.io/agnivesh_01/{size}/618_2.png","trust_level":0},{"id":491,"username":"Antonette.Caldwell","name":"Antonette Caldwell","avatar_template":"/user_avatar/discuss.layer5.io/antonette.caldwell/{size}/485_2.png","trust_level":0},{"id":692,"username":"Pranav.Patil","name":"Pranav Patil","avatar_template":"/user_avatar/discuss.layer5.io/pranav.patil/{size}/698_2.png","trust_level":1},{"id":342,"username":"Kamal.Singh","name":"Kamal Singh","avatar_template":"/user_avatar/discuss.layer5.io/kamal.singh/{size}/466_2.png","trust_level":1},{"id":568,"username":"Franklin.Ekoh","name":"Franklin Ekoh","avatar_template":"/user_avatar/discuss.layer5.io/franklin.ekoh/{size}/573_2.png","trust_level":0},{"id":584,"username":"measutosh","name":"Asutosh Panda","avatar_template":"/user_avatar/discuss.layer5.io/measutosh/{size}/556_2.png","trust_level":0},{"id":164,"username":"Axit_Patel","name":"Axit Patel","avatar_template":"/user_avatar/discuss.layer5.io/axit_patel/{size}/297_2.png","trust_level":0},{"id":474,"username":"Pankaj.Khushalani","name":"Pankaj Khushalani","avatar_template":"/user_avatar/discuss.layer5.io/pankaj.khushalani/{size}/477_2.png","trust_level":1},{"id":22,"username":"alphaX86","name":"Aadhitya A","avatar_template":"/user_avatar/discuss.layer5.io/alphax86/{size}/51_2.png","trust_level":1}],"primary_groups":[],"flair_groups":[{"id":42,"name":"Team","flair_url":"/uploads/default/original/2X/2/217d51a6a52fec6ed215c48ec60f366eb09c02da.png","flair_bg_color":"7FFFFFF","flair_color":""}],"topic_list":{"can_create_topic":false,"more_topics_url":"/tag/mesheryctl?match_all_tags=true&page=1&tags%5B%5D=mesheryctl","per_page":30,"top_tags":["meshery","community","meetings","layer5","doubt","websites","meshmate","mesheryctl","meshery-ui","meshmap","weekly-summary","docs","newcomers","ux","error","meshery-adapter","devops","kubernetes","sistent","models","reactjs","announcements","cicd","components","discussion","docker-desktop","help","meshmodel","nighthawk","playground","setup-issue"],"tags":[{"id":71,"name":"mesheryctl","topic_count":31,"staff":false,"description":null}],"topics":[{"id":5597,"title":"Adapter unavailable when open Meshery playground on local host via Mesheryctl","fancy_title":"Adapter unavailable when open Meshery playground on local host via Mesheryctl","slug":"adapter-unavailable-when-open-meshery-playground-on-local-host-via-mesheryctl","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_1023x638.png","created_at":"2024-08-19T05:11:33.775Z","last_posted_at":"2024-08-19T07:32:29.729Z","bumped":true,"bumped_at":"2024-08-19T07:32:29.729Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2764,"height":1724,"url":"https://discuss.layer5.io/uploads/default/original/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d.png"},{"max_width":1024,"max_height":1024,"width":1023,"height":638,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_1023x638.png"},{"max_width":800,"max_height":800,"width":800,"height":498,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_800x498.png"},{"max_width":600,"max_height":600,"width":600,"height":374,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_600x374.png"},{"max_width":400,"max_height":400,"width":400,"height":249,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_400x249.png"},{"max_width":300,"max_height":300,"width":300,"height":187,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_300x187.png"},{"max_width":200,"max_height":200,"width":200,"height":124,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/3/3d7638078ddb1b63505c41ac6c969cfaaf73ae2d_2_200x124.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":14,"like_count":1,"has_summary":false,"last_poster_username":"Rudraksh_Tyagi","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2194,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":2579,"primary_group_id":null,"flair_group_id":null}]},{"id":5540,"title":"Help needed to setup Meshery locally","fancy_title":"Help needed to setup Meshery locally","slug":"help-needed-to-setup-meshery-locally","posts_count":9,"reply_count":2,"highest_post_number":9,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c.jpeg","created_at":"2024-08-09T06:40:26.319Z","last_posted_at":"2024-08-09T12:03:43.734Z","bumped":true,"bumped_at":"2024-08-09T12:03:43.734Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":856,"height":659,"url":"https://discuss.layer5.io/uploads/default/original/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":615,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_800x615.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":461,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_600x461.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":307,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_400x307.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":230,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_300x230.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":153,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e9619cfc50c5ddbcde46ed90911e87d103499a7c_2_200x153.jpeg"}],"tags":["meshery","meshmate","mesheryctl","meshery-ui"],"tags_descriptions":{},"views":38,"like_count":1,"has_summary":false,"last_poster_username":"hritesh94","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":2902,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5392,"title":"[Open Discussion] Consistency and Test Cases for Mesheryctl (Meshery CLI)","fancy_title":"[Open Discussion] Consistency and Test Cases for Mesheryctl (Meshery CLI)","slug":"open-discussion-consistency-and-test-cases-for-mesheryctl-meshery-cli","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2024-06-27T13:29:57.604Z","last_posted_at":"2024-06-27T22:35:02.026Z","bumped":true,"bumped_at":"2024-06-27T22:35:02.026Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl","cli"],"tags_descriptions":{},"views":64,"like_count":1,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1760,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5200,"title":"Looking for a meshmate to help with first PR","fancy_title":"Looking for a meshmate to help with first PR","slug":"looking-for-a-meshmate-to-help-with-first-pr","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-05-30T14:54:11.455Z","last_posted_at":"2024-05-30T15:21:44.720Z","bumped":true,"bumped_at":"2024-05-30T15:21:44.720Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","meshmate","mesheryctl","meshery-ui","meshmap"],"tags_descriptions":{},"views":75,"like_count":0,"has_summary":false,"last_poster_username":"Yash.Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2729,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":826,"primary_group_id":null,"flair_group_id":42}]},{"id":4862,"title":"Not able to access Ports during mesheryctl system start","fancy_title":"Not able to access Ports during mesheryctl system start","slug":"not-able-to-access-ports-during-mesheryctl-system-start","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2024-03-20T14:22:15.519Z","last_posted_at":"2024-04-02T17:09:50.834Z","bumped":true,"bumped_at":"2024-04-02T17:09:50.834Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":202,"like_count":4,"has_summary":false,"last_poster_username":"vishalvivekm","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":2573,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42}]},{"id":4769,"title":"Tip: Series of commands to generate Meshery's model registry","fancy_title":"Tip: Series of commands to generate Meshery’s model registry","slug":"tip-series-of-commands-to-generate-mesherys-model-registry","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-03-05T21:08:15.434Z","last_posted_at":"2024-03-05T21:08:15.692Z","bumped":true,"bumped_at":"2024-03-05T23:23:02.788Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl","models","registry"],"tags_descriptions":{},"views":146,"like_count":0,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":4729,"title":"Error while connecting minikube on meshery","fancy_title":"Error while connecting minikube on meshery","slug":"error-while-connecting-minikube-on-meshery","posts_count":8,"reply_count":4,"highest_post_number":8,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_1024x241.png","created_at":"2024-02-27T19:49:17.969Z","last_posted_at":"2024-02-28T06:45:12.972Z","bumped":true,"bumped_at":"2024-02-28T06:45:12.972Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1148,"height":271,"url":"https://discuss.layer5.io/uploads/default/original/2X/6/647938555bf6f688e5948dbcd556a7f31295c198.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":241,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_1024x241.png"},{"max_width":800,"max_height":800,"width":800,"height":188,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_800x188.png"},{"max_width":600,"max_height":600,"width":600,"height":141,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_600x141.png"},{"max_width":400,"max_height":400,"width":400,"height":94,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_400x94.png"},{"max_width":300,"max_height":300,"width":300,"height":70,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_300x70.png"},{"max_width":200,"max_height":200,"width":200,"height":47,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/6/647938555bf6f688e5948dbcd556a7f31295c198_2_200x47.png"}],"tags":["meshery","mesheryctl","minikube"],"tags_descriptions":{},"views":290,"like_count":0,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2265,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":4203,"title":"Error while installing kubernetes","fancy_title":"Error while installing kubernetes","slug":"error-while-installing-kubernetes","posts_count":8,"reply_count":3,"highest_post_number":8,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a.png","created_at":"2023-11-17T09:50:47.335Z","last_posted_at":"2024-01-06T19:48:47.490Z","bumped":true,"bumped_at":"2024-01-07T12:15:59.462Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":768,"height":109,"url":"https://discuss.layer5.io/uploads/default/original/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a.png"},{"max_width":600,"max_height":600,"width":600,"height":85,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a_2_600x85.png"},{"max_width":400,"max_height":400,"width":400,"height":56,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a_2_400x56.png"},{"max_width":300,"max_height":300,"width":300,"height":42,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a_2_300x42.png"},{"max_width":200,"max_height":200,"width":200,"height":28,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/19b0b718414aacb65539c6358395e33b1ef1c58a_2_200x28.png"}],"tags":["mesheryctl","kubernetes"],"tags_descriptions":{},"views":346,"like_count":4,"has_summary":false,"last_poster_username":"Abdur","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster, Accepted Answer","user_id":1890,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":788,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2305,"primary_group_id":null,"flair_group_id":null}]},{"id":4332,"title":"What port does mesheryctl work on generally?","fancy_title":"What port does mesheryctl work on generally?","slug":"what-port-does-mesheryctl-work-on-generally","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2023-12-12T19:14:38.103Z","last_posted_at":"2023-12-12T19:18:04.646Z","bumped":true,"bumped_at":"2023-12-12T19:18:04.646Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":215,"like_count":0,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2228,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":4284,"title":"Docker compose not available issue while running mesheryctl system start command","fancy_title":"Docker compose not available issue while running mesheryctl system start command","slug":"docker-compose-not-available-issue-while-running-mesheryctl-system-start-command","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_1024x195.png","created_at":"2023-12-04T13:36:32.550Z","last_posted_at":"2023-12-04T13:47:56.215Z","bumped":true,"bumped_at":"2023-12-04T13:47:56.215Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1761,"height":337,"url":"https://discuss.layer5.io/uploads/default/original/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":195,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_1024x195.png"},{"max_width":800,"max_height":800,"width":800,"height":153,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_800x153.png"},{"max_width":600,"max_height":600,"width":600,"height":114,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_600x114.png"},{"max_width":400,"max_height":400,"width":400,"height":76,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_400x76.png"},{"max_width":300,"max_height":300,"width":300,"height":57,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_300x57.png"},{"max_width":200,"max_height":200,"width":200,"height":38,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d5777457926033c4fdd5f7a304d83ccdf3031de3_2_200x38.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":288,"like_count":2,"has_summary":false,"last_poster_username":"Shlok_Mishra","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":1760,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2177,"primary_group_id":null,"flair_group_id":null}]},{"id":3517,"title":"While Setting Environment for Meshery, Facing issue","fancy_title":"While Setting Environment for Meshery, Facing issue","slug":"while-setting-environment-for-meshery-facing-issue","posts_count":12,"reply_count":9,"highest_post_number":13,"image_url":null,"created_at":"2023-09-05T08:17:01.125Z","last_posted_at":"2023-09-29T18:43:12.784Z","bumped":true,"bumped_at":"2023-09-29T18:43:12.784Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt","mesheryctl"],"tags_descriptions":{},"views":433,"like_count":5,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1743,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1841,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1924,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":3398,"title":"Invalid Component Error while starting meshery system","fancy_title":"Invalid Component Error while starting meshery system","slug":"invalid-component-error-while-starting-meshery-system","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/4/4733b621567b772112e69870783bfdfef14ca123.png","created_at":"2023-08-18T07:11:09.570Z","last_posted_at":"2023-08-18T19:54:36.146Z","bumped":true,"bumped_at":"2023-08-18T19:54:36.146Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":519,"height":138,"url":"https://discuss.layer5.io/uploads/default/original/2X/4/4733b621567b772112e69870783bfdfef14ca123.png"},{"max_width":400,"max_height":400,"width":400,"height":106,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/4/4733b621567b772112e69870783bfdfef14ca123_2_400x106.png"},{"max_width":300,"max_height":300,"width":300,"height":79,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/4/4733b621567b772112e69870783bfdfef14ca123_2_300x79.png"},{"max_width":200,"max_height":200,"width":200,"height":53,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/4/4733b621567b772112e69870783bfdfef14ca123_2_200x53.png"}],"tags":["meshery","mesheryctl","error"],"tags_descriptions":{},"views":303,"like_count":0,"has_summary":false,"last_poster_username":"Yash_Sharma","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":1681,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":1354,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null}]},{"id":3393,"title":"Mesheryctl is not updating on the latest macOS Sonoma beta. Homebrew is giving me some error. Please help","fancy_title":"Mesheryctl is not updating on the latest macOS Sonoma beta. Homebrew is giving me some error. Please help","slug":"mesheryctl-is-not-updating-on-the-latest-macos-sonoma-beta-homebrew-is-giving-me-some-error-please-help","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_1024x661.jpeg","created_at":"2023-08-17T18:02:39.821Z","last_posted_at":"2023-08-17T18:02:39.962Z","bumped":true,"bumped_at":"2023-08-17T18:02:39.962Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1241,"url":"https://discuss.layer5.io/uploads/default/original/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":661,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_1024x661.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":517,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_800x517.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":387,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_600x387.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":258,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_400x258.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":193,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_300x193.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":129,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/1/1c40483fc408e522cbc32ea26db30dfdf503cbcb_2_200x129.jpeg"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":290,"like_count":0,"has_summary":false,"last_poster_username":"kituuu","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":1669,"primary_group_id":null,"flair_group_id":null}]},{"id":3347,"title":"New Performance features in mesheryctl","fancy_title":"New Performance features in mesheryctl","slug":"new-performance-features-in-mesheryctl","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2023-08-09T10:22:02.044Z","last_posted_at":"2023-08-10T13:50:25.400Z","bumped":true,"bumped_at":"2023-08-10T13:50:25.400Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","mesheryctl","performance"],"tags_descriptions":{},"views":271,"like_count":5,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":698,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1100,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":3307,"title":"Certificates signed by unknown authority","fancy_title":"Certificates signed by unknown authority","slug":"certificates-signed-by-unknown-authority","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_1024x576.png","created_at":"2023-08-03T09:21:00.874Z","last_posted_at":"2023-08-06T15:16:54.583Z","bumped":true,"bumped_at":"2023-08-06T15:16:54.583Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1080,"url":"https://discuss.layer5.io/uploads/default/original/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":576,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_1024x576.png"},{"max_width":800,"max_height":800,"width":800,"height":450,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_800x450.png"},{"max_width":600,"max_height":600,"width":600,"height":337,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_600x337.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":168,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_300x168.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8d784d54f1dc9ba8009357061f404b83adf061ec_2_200x112.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":462,"like_count":2,"has_summary":false,"last_poster_username":"parth721","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1537,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":1478,"primary_group_id":null,"flair_group_id":null}]},{"id":3200,"title":"`systemctl` unable to get context even if they are available","fancy_title":"`systemctl` unable to get context even if they are available","slug":"systemctl-unable-to-get-context-even-if-they-are-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_1024x272.png","created_at":"2023-07-20T10:19:38.095Z","last_posted_at":"2023-07-20T10:19:38.254Z","bumped":true,"bumped_at":"2023-07-20T10:19:38.254Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1070,"height":285,"url":"https://discuss.layer5.io/uploads/default/original/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":272,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_1024x272.png"},{"max_width":800,"max_height":800,"width":800,"height":213,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_800x213.png"},{"max_width":600,"max_height":600,"width":600,"height":159,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_600x159.png"},{"max_width":400,"max_height":400,"width":400,"height":106,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_400x106.png"},{"max_width":300,"max_height":300,"width":300,"height":79,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_300x79.png"},{"max_width":200,"max_height":200,"width":200,"height":53,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/0/07c8a3ed81a4055549e8755471c5826f88d1c4ed_2_200x53.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":308,"like_count":0,"has_summary":false,"last_poster_username":"luigidematteis","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":1563,"primary_group_id":null,"flair_group_id":null}]},{"id":3132,"title":"Can we login using `mesheryctl` without opening browser, with token or something similar","fancy_title":"Can we login using `mesheryctl` without opening browser, with token or something similar","slug":"can-we-login-using-mesheryctl-without-opening-browser-with-token-or-something-similar","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2023-07-13T18:10:34.450Z","last_posted_at":"2023-07-15T00:58:32.029Z","bumped":true,"bumped_at":"2023-07-15T00:58:32.029Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":434,"like_count":0,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":132,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":2578,"title":"Error while running mesheryctl system login command","fancy_title":"Error while running mesheryctl system login command","slug":"error-while-running-mesheryctl-system-login-command","posts_count":9,"reply_count":6,"highest_post_number":9,"image_url":null,"created_at":"2023-04-20T15:38:21.992Z","last_posted_at":"2023-07-04T11:31:05.634Z","bumped":true,"bumped_at":"2023-07-04T11:31:05.634Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":391,"like_count":1,"has_summary":false,"last_poster_username":"Suhail.Khan","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1198,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":33,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":683,"primary_group_id":null,"flair_group_id":null}]},{"id":2761,"title":"Mesheryctl system login not stopping (after signed in successfully)","fancy_title":"Mesheryctl system login not stopping (after signed in successfully)","slug":"mesheryctl-system-login-not-stopping-after-signed-in-successfully","posts_count":8,"reply_count":3,"highest_post_number":8,"image_url":null,"created_at":"2023-05-19T08:56:02.317Z","last_posted_at":"2023-05-25T18:51:08.318Z","bumped":true,"bumped_at":"2023-05-25T18:51:08.318Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":387,"like_count":4,"has_summary":false,"last_poster_username":"aminos","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":31,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":14,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":950,"primary_group_id":null,"flair_group_id":null}]},{"id":2593,"title":"Uneven way through which meshery opens up","fancy_title":"Uneven way through which meshery opens up","slug":"uneven-way-through-which-meshery-opens-up","posts_count":6,"reply_count":2,"highest_post_number":7,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_1024x491.jpeg","created_at":"2023-04-22T10:39:32.794Z","last_posted_at":"2023-04-24T21:07:36.711Z","bumped":true,"bumped_at":"2023-04-24T21:07:36.711Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1432,"height":688,"url":"https://discuss.layer5.io/uploads/default/original/2X/d/d70122958b3dee39862d797a881201f4fe43b383.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":491,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_1024x491.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":384,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_800x384.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":288,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_600x288.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":192,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_400x192.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":144,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_300x144.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":96,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d70122958b3dee39862d797a881201f4fe43b383_2_200x96.jpeg"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":372,"like_count":3,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":1093,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":950,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":2289,"title":"Unable to start Meshery","fancy_title":"Unable to start Meshery","slug":"unable-to-start-meshery","posts_count":13,"reply_count":9,"highest_post_number":13,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_1024x477.png","created_at":"2023-03-02T02:17:44.628Z","last_posted_at":"2023-03-05T19:31:41.968Z","bumped":true,"bumped_at":"2023-03-05T19:31:41.968Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1452,"height":677,"url":"https://discuss.layer5.io/uploads/default/original/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":477,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_1024x477.png"},{"max_width":800,"max_height":800,"width":800,"height":373,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_800x373.png"},{"max_width":600,"max_height":600,"width":600,"height":279,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_600x279.png"},{"max_width":400,"max_height":400,"width":400,"height":186,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_400x186.png"},{"max_width":300,"max_height":300,"width":300,"height":139,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_300x139.png"},{"max_width":200,"max_height":200,"width":200,"height":93,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/2d7c670abc0c8005c2fcc94ebe53818ce7a531fb_2_200x93.png"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":467,"like_count":3,"has_summary":false,"last_poster_username":"Samarth_Mayya","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":974,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":1733,"title":"Facing an error in setting up meshery locally","fancy_title":"Facing an error in setting up meshery locally","slug":"facing-an-error-in-setting-up-meshery-locally","posts_count":10,"reply_count":7,"highest_post_number":10,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_1024x393.png","created_at":"2022-12-21T06:21:35.182Z","last_posted_at":"2022-12-23T12:41:51.234Z","bumped":true,"bumped_at":"2022-12-23T12:41:51.234Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1580,"height":607,"url":"https://discuss.layer5.io/uploads/default/original/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":393,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_1024x393.png"},{"max_width":800,"max_height":800,"width":800,"height":307,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_800x307.png"},{"max_width":600,"max_height":600,"width":600,"height":230,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_600x230.png"},{"max_width":400,"max_height":400,"width":400,"height":153,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_400x153.png"},{"max_width":300,"max_height":300,"width":300,"height":115,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_300x115.png"},{"max_width":200,"max_height":200,"width":200,"height":76,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/6af1df0b3f5f026fad9c9fc77bf79eb4b7505f96_2_200x76.png"}],"tags":["mesheryctl"],"tags_descriptions":{},"views":544,"like_count":4,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster, Accepted Answer","user_id":736,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":234,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":75,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":1721,"title":"Error installing Meshery on Ubuntu 22.04","fancy_title":"Error installing Meshery on Ubuntu 22.04","slug":"error-installing-meshery-on-ubuntu-22-04","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2022-12-17T03:40:32.909Z","last_posted_at":"2022-12-21T08:39:49.932Z","bumped":true,"bumped_at":"2022-12-21T08:39:49.932Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt","mesheryctl"],"tags_descriptions":{},"views":379,"like_count":0,"has_summary":false,"last_poster_username":"Anita-ihuman","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":747,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":234,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":11,"primary_group_id":null,"flair_group_id":null}]},{"id":1693,"title":"Error deploying mesheryctl","fancy_title":"Error deploying mesheryctl","slug":"error-deploying-mesheryctl","posts_count":11,"reply_count":3,"highest_post_number":11,"image_url":"https://discuss.layer5.io/uploads/default/original/1X/ce65538391191f085beb201b066bdbd42c25440c.png","created_at":"2022-12-07T17:45:00.566Z","last_posted_at":"2022-12-19T22:07:24.692Z","bumped":true,"bumped_at":"2022-12-19T22:07:24.692Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":835,"height":657,"url":"https://discuss.layer5.io/uploads/default/original/1X/ce65538391191f085beb201b066bdbd42c25440c.png"},{"max_width":800,"max_height":800,"width":800,"height":629,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_800x629.png"},{"max_width":600,"max_height":600,"width":600,"height":472,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_600x472.png"},{"max_width":400,"max_height":400,"width":400,"height":314,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_400x314.png"},{"max_width":300,"max_height":300,"width":300,"height":236,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_300x236.png"},{"max_width":200,"max_height":200,"width":200,"height":157,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/ce65538391191f085beb201b066bdbd42c25440c_2_200x157.png"}],"tags":["meshery","layer5","mesheryctl","error"],"tags_descriptions":{},"views":687,"like_count":0,"has_summary":false,"last_poster_username":"Ebi","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":729,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":1644,"title":"Not able to choose an adapter an install mesheryctl command","fancy_title":"Not able to choose an adapter an install mesheryctl command","slug":"not-able-to-choose-an-adapter-an-install-mesheryctl-command","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_1024x576.png","created_at":"2022-11-08T14:14:28.390Z","last_posted_at":"2022-11-08T16:55:23.897Z","bumped":true,"bumped_at":"2022-11-08T16:55:23.897Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1080,"url":"https://discuss.layer5.io/uploads/default/original/1X/058a1d0fc02212235b04100d4437cb439f3dc28b.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":576,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_1024x576.png"},{"max_width":800,"max_height":800,"width":800,"height":450,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_800x450.png"},{"max_width":600,"max_height":600,"width":600,"height":337,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_600x337.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":168,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_300x168.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/058a1d0fc02212235b04100d4437cb439f3dc28b_2_200x112.png"}],"tags":["community","layer5","doubt","mesheryctl","meshery-adapter"],"tags_descriptions":{},"views":441,"like_count":2,"has_summary":false,"last_poster_username":"Kamal.Singh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":688,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":33,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":491,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":692,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":342,"primary_group_id":null,"flair_group_id":null}]},{"id":1544,"title":"Unable to setup meshery docs on local (mac)","fancy_title":"Unable to setup meshery docs on local (mac)","slug":"unable-to-setup-meshery-docs-on-local-mac","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_1024x330.png","created_at":"2022-10-06T11:09:35.270Z","last_posted_at":"2022-10-06T11:09:35.478Z","bumped":true,"bumped_at":"2022-10-07T07:46:14.715Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2878,"height":928,"url":"https://discuss.layer5.io/uploads/default/original/1X/fd93033b53dab57622bb0f256e272b064abb1f94.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":330,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_1024x330.png"},{"max_width":800,"max_height":800,"width":800,"height":257,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_800x257.png"},{"max_width":600,"max_height":600,"width":600,"height":193,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_600x193.png"},{"max_width":400,"max_height":400,"width":400,"height":128,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_400x128.png"},{"max_width":300,"max_height":300,"width":300,"height":96,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_300x96.png"},{"max_width":200,"max_height":200,"width":200,"height":64,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/fd93033b53dab57622bb0f256e272b064abb1f94_2_200x64.png"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":383,"like_count":0,"has_summary":false,"last_poster_username":"Franklin.Ekoh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":568,"primary_group_id":null,"flair_group_id":null}]},{"id":1501,"title":"Issue while setting up meshery using GItpod","fancy_title":"Issue while setting up meshery using GItpod","slug":"issue-while-setting-up-meshery-using-gitpod","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/original/1X/456154a8125d86462659ceab5ba52f1bcad61472.png","created_at":"2022-09-27T11:59:53.664Z","last_posted_at":"2022-09-27T12:03:23.747Z","bumped":true,"bumped_at":"2022-09-27T12:03:23.747Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":855,"height":481,"url":"https://discuss.layer5.io/uploads/default/original/1X/456154a8125d86462659ceab5ba52f1bcad61472.png"},{"max_width":800,"max_height":800,"width":800,"height":450,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_800x450.png"},{"max_width":600,"max_height":600,"width":600,"height":337,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_600x337.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":168,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_300x168.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/456154a8125d86462659ceab5ba52f1bcad61472_2_200x112.png"}],"tags":["meshery","community","doubt","mesheryctl"],"tags_descriptions":{},"views":337,"like_count":0,"has_summary":false,"last_poster_username":"Kamal.Singh","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":584,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":342,"primary_group_id":null,"flair_group_id":null}]},{"id":1162,"title":"How to run Mesheryctl locally in my system","fancy_title":"How to run Mesheryctl locally in my system","slug":"how-to-run-mesheryctl-locally-in-my-system","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2022-09-03T05:27:31.951Z","last_posted_at":"2022-09-20T04:17:32.231Z","bumped":true,"bumped_at":"2022-09-20T04:17:32.231Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl"],"tags_descriptions":{},"views":405,"like_count":1,"has_summary":false,"last_poster_username":"Lee","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":164,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":474,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":1000,"title":"Mesheryctl app import: Design Spec Review","fancy_title":"Mesheryctl app import: Design Spec Review","slug":"mesheryctl-app-import-design-spec-review","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2022-07-27T15:27:25.654Z","last_posted_at":"2022-08-05T07:23:07.420Z","bumped":true,"bumped_at":"2022-08-05T07:23:07.420Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["mesheryctl","design-review","kubernetes-manifest","helm-chart"],"tags_descriptions":{},"views":504,"like_count":1,"has_summary":false,"last_poster_username":"alphaX86","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":22,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":977,"title":"Meshery Not Starting (mesheryctl)","fancy_title":"Meshery Not Starting (mesheryctl)","slug":"meshery-not-starting-mesheryctl","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_1024x214.png","created_at":"2022-07-27T04:34:55.867Z","last_posted_at":"2022-07-27T09:23:10.178Z","bumped":true,"bumped_at":"2022-07-27T09:23:10.178Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1100,"height":230,"url":"https://discuss.layer5.io/uploads/default/original/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":214,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_1024x214.png"},{"max_width":800,"max_height":800,"width":800,"height":167,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_800x167.png"},{"max_width":600,"max_height":600,"width":600,"height":125,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_600x125.png"},{"max_width":400,"max_height":400,"width":400,"height":83,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_400x83.png"},{"max_width":300,"max_height":300,"width":300,"height":62,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_300x62.png"},{"max_width":200,"max_height":200,"width":200,"height":41,"url":"https://discuss.layer5.io/uploads/default/optimized/1X/1d1da596f747d83c42f3cb5b692c866d99c69d76_2_200x41.png"}],"tags":["community","mesheryctl"],"tags_descriptions":{},"views":336,"like_count":2,"has_summary":false,"last_poster_username":"harkiratsm","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":234,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":22,"primary_group_id":null,"flair_group_id":null}]}]}} \ No newline at end of file diff --git a/docs/_data/errorref/meshery-server_errors_export.json b/docs/_data/errorref/meshery-server_errors_export.json index ec8ee64df0f..be134c6da41 100644 --- a/docs/_data/errorref/meshery-server_errors_export.json +++ b/docs/_data/errorref/meshery-server_errors_export.json @@ -2905,10 +2905,10 @@ "name": "ErrCreatingOPAInstanceCode", "code": "1323", "severity": "Alert", - "long_description": "Unable to create OPA instance, policies will not be evaluated.", + "long_description": "", "short_description": "Error creating OPA Instance.", - "probable_cause": "", - "suggested_remediation": "" + "probable_cause": "Unable to create OPA instance, policies will not be evaluated.", + "suggested_remediation": "Ensure relationships are registered" }, "1324": { "name": "ErrEventStreamingNotSupportedCode", diff --git a/docs/_data/errorref/mesheryctl_errors_export.json b/docs/_data/errorref/mesheryctl_errors_export.json index ec8ee64df0f..be134c6da41 100644 --- a/docs/_data/errorref/mesheryctl_errors_export.json +++ b/docs/_data/errorref/mesheryctl_errors_export.json @@ -2905,10 +2905,10 @@ "name": "ErrCreatingOPAInstanceCode", "code": "1323", "severity": "Alert", - "long_description": "Unable to create OPA instance, policies will not be evaluated.", + "long_description": "", "short_description": "Error creating OPA Instance.", - "probable_cause": "", - "suggested_remediation": "" + "probable_cause": "Unable to create OPA instance, policies will not be evaluated.", + "suggested_remediation": "Ensure relationships are registered" }, "1324": { "name": "ErrEventStreamingNotSupportedCode", diff --git a/docs/_data/toc.yml b/docs/_data/toc.yml index 485a4dcdd5f..0620d535b9b 100644 --- a/docs/_data/toc.yml +++ b/docs/_data/toc.yml @@ -44,8 +44,13 @@ grandchildren: - title: "Scoop" url: installation/windows/scoop + - title: Upgrading Meshery ↆ + url: installation/upgrades + children: + - title: Meshery CLI + url: installation/upgrades#upgrading-meshery-cli - title: Using Multiple Meshery Adapters - url: guides/multiple-adapters + url: installation/multiple-adapters - title: Meshery Playground url: installation/playground - title: 🧠 Concepts @@ -94,7 +99,7 @@ # links: # - title: Meshery Playground # url: features/playground -- title: 📚 Guides +- title: 📚 Guides & Tutorials url: guides links: # - title: Deploying Designs @@ -128,17 +133,17 @@ url: guides/events-management - title: GitOps with Meshery url: guides/infrastructure-management/gitops-with-meshery - - title: Using Metrics in Meshery ↆ + - title: Performance Management ↆ url: guides/performance-management children: - - title: Performance Management - url: guides/performance/managing-performance - - title: Integrating Prometheus and Grafana + - title: Performance Management with Meshery + url: guides/performance-management/performance-management + - title: Using Metrics in Meshery url: guides/performance-management/meshery-metrics - title: Interpreting Performance Test Results url: guides/performance-management/interpreting-performance-test-results - - title: Performance Management with Meshery - url: guides/performance-management/performance-management + - title: Performance Profiles and Tests #should go under concepts + url: guides/performance-management/managing-performance - title: Using Meshery CLI Guides ↆ url: guides/mesheryctl children: @@ -168,11 +173,6 @@ url: guides/tutorials/exploring-kubernetes-cronjobs - title: Understanding Kubernetes ConfigMaps and Secrets url: guides/tutorials/kubernetes-configmaps-secrets - - title: Upgrading Meshery ↆ - url: installation/upgrades - children: - - title: Meshery CLI - url: installation/upgrades#upgrading-meshery-cli # - title: ⚙️ Tasks # url: tasks # links: diff --git a/docs/_models/kubesphere.md b/docs/_models/kubesphere.md index 99f0fddd968..1f5b1762e04 100644 --- a/docs/_models/kubesphere.md +++ b/docs/_models/kubesphere.md @@ -11,12 +11,12 @@ integrations-subcategory: Certified Kubernetes - Distribution registrant: Artifact Hub components: featureList: [ - "Simplifies Kubernetes cluster management", - "Provides a user-friendly web interface", - "Offers various DevOps and application management tools" + "Drag-n-drop cloud native infrastructure designer to configure, model, and deploy your workloads.", + "Invite anyone to review and make changes to your private designs.", + "Ongoing synchronization of Kubernetes configuration and changes across any number of clusters." ] -howItWorks: "Integrates Kubesphere" -howItWorksDetails: "Easier and more efficient Kubernetes management and application delivery" +howItWorks: "Collaborative Infrastructure as Design" +howItWorksDetails: "Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs." language: en list: include type: extensibility diff --git a/docs/_releases/v0.8.0-beta.1.md b/docs/_releases/v0.8.0-beta.1.md new file mode 100644 index 00000000000..249ad848c9c --- /dev/null +++ b/docs/_releases/v0.8.0-beta.1.md @@ -0,0 +1,53 @@ +--- +layout: release +date: 2024-08-26 +tag: v0.8.0-beta.1 +--- + +## What's New +## 🔤 General +- [Docs] Readme language regarding star @marblom007 (#11798) +- track relationships that are updated by evaluator as trace @MUzairS15 (#11796) +- Add fallback when mapping model related details for meshery curated models @MUzairS15 (#11793) +- Update edge-firewall.json @Jougan-0 (#11789) +- bump meshkit w/signoff @Jougan-0 (#11786) +- bump meshkit w/signoff @Jougan-0 (#11780) +- add missing transitions w/signoff @Jougan-0 (#11779) +- [Relationships] ACK S3 @Jougan-0 (#11706) +- Bump micromatch from 4.0.4 to 4.0.8 in /install/docker-extension/ui @dependabot (#11767) +- chore: Update github.com/meshery/schemas to v0.7.25 @leecalcote (#11772) + +## ⌨️ Meshery CLI + +- Update command and fix minor bug w/signoff @Jougan-0 (#11791) +- Update logs to be right @Jougan-0 (#11770) + +## 🖥 Meshery UI + +- chore: remove list reporter because reporter can just accept one reporter via cli @jerensl (#11784) +- [UI] Fix dashboard chart related issue @amitamrutiya (#11775) +- Fix: e2e test cases @jerensl (#11773) +- [UI]: RTK Migration for Meshery Performance @senthil-athiban (#11572) +- ci: add e2e test report using gh comment on PR @jerensl (#11697) + +## 🧰 Maintenance + +- [Chore] Delete Dockerfile @jamieplu (#11787) +- fix: fix e2e comment body by parsing the binary buffer to string @jerensl (#11792) +- chore: Add PLAYGROUND flag to docker-playground-build command @leecalcote (#11797) +- chore: remove list reporter because reporter can just accept one reporter via cli @jerensl (#11784) +- chore: add test keep commenting when fail @jerensl (#11778) +- fix: stale e2e test @jerensl (#11776) +- Fix: e2e test cases @jerensl (#11773) +- ci: add e2e test report using gh comment on PR @jerensl (#11697) + +## 📖 Documentation + +- remove older docs version from exclude @vishalvivekm (#11785) +- [Docs]:Edge shape documentation added @SAHU-01 (#11701) +- Update sharing-a-design.md @a-singh02 (#11745) + +## 👨🏽‍💻 Contributors + +Thank you to our contributors for making this release possible: +@Jougan-0, @MUzairS15, @SAHU-01, @a-singh02, @amitamrutiya, @dependabot, @jamieplu, @jerensl, @leecalcote, @marblom007, @senthil-athiban, @sudhanshutech and @vishalvivekm diff --git a/docs/pages/concepts/architectural/architecture.md b/docs/pages/concepts/architectural/architecture.md index d14e8c8d2fb..eb4fe9ea027 100644 --- a/docs/pages/concepts/architectural/architecture.md +++ b/docs/pages/concepts/architectural/architecture.md @@ -22,8 +22,8 @@ Meshery and its components are written using the following languages and technol | Meshery Provider UI | ReactJS, NextJS | | [Meshery Remote Providers](/extensibility/providers) | _any_ - must adhere to Meshery [Extension Points]({{site.baseurl}}/extensibility) | | [Meshery Operator](/concepts/architecture/operator) | Golang | -|      [MeshSync](/concepts/architecture/meshsync) | Golang | -|      [Broker](/concepts/architecture/broker) | Golang, NATS | +| [MeshSync](/concepts/architecture/meshsync) | Golang | +| [Broker](/concepts/architecture/broker) | Golang, NATS | | [Meshery Database](/concepts/architecture/database) | Golang, SQLlite | | [Meshery CLI](#meshery-cli) | Golang | diff --git a/docs/pages/guides/performance-management/index.md b/docs/pages/guides/performance-management/index.md index bcabd8bd4ab..9dead25e49b 100644 --- a/docs/pages/guides/performance-management/index.md +++ b/docs/pages/guides/performance-management/index.md @@ -15,7 +15,7 @@ Guides for understanding Meshery's ability to characterize and analyze performan The numeric portion of error codes are component-scoped. The numeric portion of error codes are allowed to overlap between Meshery components. The combination of the [component type]-[component name]-[event moniker]-[numeric code] is what makes a given error code globally unique." %} +### See Also + +Troubleshooting guides to using Meshery's various features and components. + +{% assign sorted_guides = site.pages | sort: "type" | reverse %} + + + ## Error Code Categories by Component diff --git a/docs/v0.6/pages/installation/compatibility-matrix.md b/docs/v0.6/pages/installation/compatibility-matrix.md index c1b2f8e67fc..9de64c53bb4 100644 --- a/docs/v0.6/pages/installation/compatibility-matrix.md +++ b/docs/v0.6/pages/installation/compatibility-matrix.md @@ -50,7 +50,7 @@ Meshery Server and Meshery Adapters are tested daily for their compatibility wit
- {%include compatibilityMatrix.md k8s_tests_group=k8s_tests_group %} + {%include compatibility/compatibilityMatrix.md k8s_tests_group=k8s_tests_group %}

The following minimum Docker build versions are required:

diff --git a/go.mod b/go.mod index 54a9a8bdadf..340989cc2ca 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( github.com/jinzhu/copier v0.4.0 github.com/layer5io/gowrk2 v0.6.1 github.com/layer5io/meshery-operator v0.7.0 - github.com/layer5io/meshkit v0.7.67 + github.com/layer5io/meshkit v0.7.70 github.com/layer5io/meshsync v0.6.24 github.com/layer5io/nighthawk-go v1.0.3 github.com/layer5io/service-mesh-performance v0.6.1 diff --git a/go.sum b/go.sum index 201e16366a8..6ea6b556fbf 100644 --- a/go.sum +++ b/go.sum @@ -1616,8 +1616,8 @@ github.com/layer5io/gowrk2 v0.6.1/go.mod h1:ugxQ23+HwQ8dmZYJd1LScw/TLKbdgfN6OOtg github.com/layer5io/meshery-operator v0.7.0 h1:YXlnsx2Xy5duM+W99vts2fFV4C1KnOCytQi2fxdQTUc= github.com/layer5io/meshery-operator v0.7.0/go.mod h1:mVMpSrvSH1zgSmcjzk+/astXV5L34NlL/PcZMH6s2IU= github.com/layer5io/meshkit v0.2.7/go.mod h1:QvEKV8wIEOabiFlUgiu+s78GpJTsRpoRw5pgvEX077Y= -github.com/layer5io/meshkit v0.7.67 h1:eSC9muxZr5Z7ETpLd7Jr+jLjoj+P+YmcCd4nznnLZXg= -github.com/layer5io/meshkit v0.7.67/go.mod h1:qs3OTId50i6ejcPQ1N9rw9o79vuCXgSR4QyJle/b8O0= +github.com/layer5io/meshkit v0.7.70 h1:kEb+iZQCl7sb0il9X2lfhQJCh90xCq3qtWxPJ9AxPvU= +github.com/layer5io/meshkit v0.7.70/go.mod h1:0vWf6kcrD9GL0pBd/Se8c2Gs/p6MbSNEgXnfLUOp/Zc= github.com/layer5io/meshsync v0.6.24 h1:ui/u89NW2yHyCtdVaJuuzrag5a1CbhVB8Lp70/9Y+lw= github.com/layer5io/meshsync v0.6.24/go.mod h1:0qI6ATBvkVx10C1ymH62NaGPy85ALFF3T9Dx/IEXfy0= github.com/layer5io/nighthawk-go v1.0.3 h1:AGhip7TM8FjaDJ58jU/7BoPx+O45S7UNImfw7vC2Z0U= diff --git a/mesheryctl/internal/cli/root/config/config.go b/mesheryctl/internal/cli/root/config/config.go index 6cd2c5412d1..34f3b338ddc 100644 --- a/mesheryctl/internal/cli/root/config/config.go +++ b/mesheryctl/internal/cli/root/config/config.go @@ -146,7 +146,8 @@ func (mc *MesheryCtlConfig) SetCurrentContext(contextName string) error { } _, err := mc.CheckIfCurrentContextIsValid() if err != nil { - log.Errorf(err.Error()) + log.Errorf("Error: %v", err.Error()) + } return err diff --git a/mesheryctl/internal/cli/root/pattern/apply.go b/mesheryctl/internal/cli/root/pattern/apply.go index 1028080d478..6e5609e39ea 100644 --- a/mesheryctl/internal/cli/root/pattern/apply.go +++ b/mesheryctl/internal/cli/root/pattern/apply.go @@ -287,7 +287,7 @@ func multiplePatternsConfirmation(profiles []models.MesheryPattern) int { fmt.Printf("Name: %v\n", a.Name) fmt.Printf("ID: %s\n", a.ID.String()) fmt.Printf("PatternFile:\n") - fmt.Printf(a.PatternFile) + fmt.Println(a.PatternFile) fmt.Println("---------------------") } diff --git a/mesheryctl/internal/cli/root/pattern/export.go b/mesheryctl/internal/cli/root/pattern/export.go index df676dd1e53..c385090a594 100644 --- a/mesheryctl/internal/cli/root/pattern/export.go +++ b/mesheryctl/internal/cli/root/pattern/export.go @@ -27,6 +27,7 @@ import ( "github.com/layer5io/meshery/mesheryctl/internal/cli/root/config" "github.com/layer5io/meshery/mesheryctl/pkg/utils" "github.com/layer5io/meshery/server/models" + "github.com/layer5io/meshkit/encoding" meshkitutils "github.com/layer5io/meshkit/utils" "github.com/manifoldco/promptui" "github.com/spf13/cobra" @@ -126,7 +127,7 @@ func fetchPatternIDByName(baseUrl, patternName string) (string, error) { TotalCount int `json:"total_count"` Patterns []models.MesheryPattern `json:"patterns"` } - if err := meshkitutils.Unmarshal(string(buf), &response); err != nil { + if err := encoding.Unmarshal(buf, &response); err != nil { return "", err } @@ -198,7 +199,7 @@ func fetchPatternData(dataURL string) (*models.MesheryPattern, error) { } var pattern models.MesheryPattern - if err = meshkitutils.Unmarshal(buf.String(), &pattern); err != nil { + if err = encoding.Unmarshal((buf.Bytes()), &pattern); err != nil { return nil, err } @@ -261,7 +262,7 @@ func getOwnerName(ownerID string, baseURL string) (string, error) { return "", ErrReadFromBody(err) } - if err := meshkitutils.Unmarshal(string(body), &userProfile); err != nil { + if err := encoding.Unmarshal(body, &userProfile); err != nil { return "", err } diff --git a/mesheryctl/internal/cli/root/registry/generate.go b/mesheryctl/internal/cli/root/registry/generate.go index 189a17a6abf..a82616b6424 100644 --- a/mesheryctl/internal/cli/root/registry/generate.go +++ b/mesheryctl/internal/cli/root/registry/generate.go @@ -15,8 +15,10 @@ package registry import ( + "bytes" "context" "fmt" + "io" "net/url" "os" "path/filepath" @@ -179,9 +181,11 @@ func InvokeGenerationFromSheet(wg *sync.WaitGroup) error { if err != nil { return err } + multiWriter := io.MultiWriter(os.Stdout, logFile) + multiErrorWriter := io.MultiWriter(os.Stdout, errorLogFile) - utils.Log.UpdateLogOutput(logFile) - utils.LogError.UpdateLogOutput(errorLogFile) + utils.Log.UpdateLogOutput(multiWriter) + utils.LogError.UpdateLogOutput(multiErrorWriter) var wgForSpreadsheetUpdate sync.WaitGroup wgForSpreadsheetUpdate.Add(1) go func() { @@ -237,18 +241,21 @@ func InvokeGenerationFromSheet(wg *sync.WaitGroup) error { utils.LogError.Error(ErrGenerateModel(err, model.Model)) return } - modelDef, err := writeModelDefToFileSystem(&model, version, modelDirPath) + modelDef, alreadyExsit, err := writeModelDefToFileSystem(&model, version, modelDirPath) if err != nil { utils.LogError.Error(err) return } + if alreadyExsit { + totalAvailableModels-- + } comps, err := pkg.GenerateComponents() if err != nil { utils.LogError.Error(ErrGenerateModel(err, model.Model)) return } - utils.Log.Info("Current model: ", model.Model) - utils.Log.Info(" extracted ", len(comps), " components for ", model.ModelDisplayName, " (", model.Model, ")") + lengthOfComps := len(comps) + for _, comp := range comps { comp.Version = defVersion // Assign the component status corresponding to model status. @@ -267,19 +274,35 @@ func InvokeGenerationFromSheet(wg *sync.WaitGroup) error { comp.Model = *modelDef assignDefaultsForCompDefs(&comp, modelDef) - err := comp.WriteComponentDefinition(compDirPath) + compAlreadyExist, err := comp.WriteComponentDefinition(compDirPath) + if compAlreadyExist { + lengthOfComps-- + } if err != nil { utils.Log.Info(err) } } - + if !alreadyExsit { + if len(comps) == 0 { + utils.LogError.Error(ErrGenerateModel(fmt.Errorf("no components found for model "), model.Model)) + } else { + utils.Log.Info("Current model: ", model.Model) + utils.Log.Info(" extracted ", lengthOfComps, " components for ", model.ModelDisplayName, " (", model.Model, ")") + } + } else { + if len(comps) > 0 { + utils.Log.Info("Model already exists: ", model.Model) + } else { + utils.LogError.Error(ErrGenerateModel(fmt.Errorf("no components found for model "), model.Model)) + } + } spreadsheeetChan <- utils.SpreadsheetData{ Model: &model, Components: comps, } modelToCompGenerateTracker.Set(model.Model, compGenerateTracker{ - totalComps: len(comps), + totalComps: lengthOfComps, version: version, }) }(model) @@ -432,16 +455,21 @@ func GenerateDefsForCoreRegistrant(model utils.ModelCSV) error { err = ErrGenerateModel(err, model.Model) return err } - modelDef, err := writeModelDefToFileSystem(&model, version, modelDirPath) // how to infer this? @Beginner86 any idea? new column? + modelDef, alreadyExist, err := writeModelDefToFileSystem(&model, version, modelDirPath) // how to infer this? @Beginner86 any idea? new column? if err != nil { return ErrGenerateModel(err, model.Model) } + if alreadyExist { + utils.Log.Info("Model already exists: ", model.Model) + } componentDef.Model = *modelDef - err = componentDef.WriteComponentDefinition(compDirPath) + _, err = componentDef.WriteComponentDefinition(compDirPath) + if err != nil { err = ErrGenerateComponent(err, model.Model, componentDef.DisplayName) utils.LogError.Error(err) } + return nil }) err = gw.Walk() @@ -501,20 +529,62 @@ func createVersionedDirectoryForModelAndComp(version, modelName string) (string, return modelDirPath, compDirPath, err } -func writeModelDefToFileSystem(model *utils.ModelCSV, version, modelDefPath string) (*v1beta1Model.ModelDefinition, error) { +func writeModelDefToFileSystem(model *utils.ModelCSV, version, modelDefPath string) (*v1beta1Model.ModelDefinition, bool, error) { modelDef := model.CreateModelDefinition(version, defVersion) - err := modelDef.WriteModelDefinition(modelDefPath+"/model.json", "json") + filePath := filepath.Join(modelDefPath, "model.json") + tmpFilePath := filepath.Join(modelDefPath, "tmp_model.json") + + // Ensure the temporary file is removed regardless of what happens + defer func() { + _ = os.Remove(tmpFilePath) + }() + + // Check if the file exists + + if _, err := os.Stat(filePath); err == nil { + existingData, err := os.ReadFile(filePath) + if err != nil { + goto NewGen + } + + err = modelDef.WriteModelDefinition(tmpFilePath, "json") + if err != nil { + goto NewGen + } + + newData, err := os.ReadFile(tmpFilePath) + if err != nil { + goto NewGen + } + + // Compare the existing and new data + if bytes.Equal(existingData, newData) { + var oldModelDef v1beta1Model.ModelDefinition + err = encoding.Unmarshal(existingData, &oldModelDef) + if err != nil { + goto NewGen + } + // If they are the same, return without changes + return &oldModelDef, true, nil + } + } +NewGen: + // Write the model definition to the actual file if it's new or different + err := modelDef.WriteModelDefinition(filePath, "json") if err != nil { - return nil, err + return nil, false, err } - return &modelDef, nil + + return &modelDef, false, nil } func logModelGenerationSummary(modelToCompGenerateTracker *store.GenerticThreadSafeStore[compGenerateTracker]) { for key, val := range modelToCompGenerateTracker.GetAllPairs() { utils.Log.Info(fmt.Sprintf("Generated %d components for model [%s] %s", val.totalComps, key, val.version)) totalAggregateComponents += val.totalComps - totalAggregateModel++ + if val.totalComps > 0 { + totalAggregateModel++ + } } utils.Log.Info(fmt.Sprintf("-----------------------------\n-----------------------------\nGenerated %d models and %d components", totalAggregateModel, totalAggregateComponents)) diff --git a/mesheryctl/internal/cli/root/registry/update.go b/mesheryctl/internal/cli/root/registry/update.go index da6c12e1889..8aba3ed1b61 100644 --- a/mesheryctl/internal/cli/root/registry/update.go +++ b/mesheryctl/internal/cli/root/registry/update.go @@ -15,6 +15,7 @@ package registry import ( + "bytes" "encoding/json" "fmt" "os" @@ -190,12 +191,44 @@ func InvokeCompUpdate() error { utils.Log.Error(ErrUpdateComponent(err, modelName, component.Component)) continue } + tmpFilePath := filepath.Join(versionPath, "components", "tmp_model.json") + + // Ensure the temporary file is removed regardless of what happens + defer func() { + _ = os.Remove(tmpFilePath) + }() + if _, err := os.Stat(compPath); err == nil { + existingData, err := os.ReadFile(compPath) + if err != nil { + utils.Log.Error(err) + goto NewGen + } + + err = mutils.WriteJSONToFile[comp.ComponentDefinition](tmpFilePath, componentDef) + if err != nil { + utils.Log.Error(err) + goto NewGen + } + + newData, err := os.ReadFile(tmpFilePath) + if err != nil { + utils.Log.Error(err) + goto NewGen + } + + if bytes.Equal(existingData, newData) { + utils.Log.Info("No changes detected for ", componentDef.Component.Kind) + continue + } + } + NewGen: err = mutils.WriteJSONToFile[comp.ComponentDefinition](compPath, componentDef) if err != nil { utils.Log.Error(err) continue } totalCompsUpdatedPerModelPerVersion++ + } compUpdateArray = append(compUpdateArray, compUpdateTracker{ totalComps: availableComponentsPerModelPerVersion, diff --git a/mesheryctl/pkg/utils/component.go b/mesheryctl/pkg/utils/component.go index a7034a2a5e9..72311bbec25 100644 --- a/mesheryctl/pkg/utils/component.go +++ b/mesheryctl/pkg/utils/component.go @@ -80,6 +80,12 @@ var compStyleValues = []string{ } func (c *ComponentCSV) UpdateCompDefinition(compDef *component.ComponentDefinition) error { + var existingAddditionalProperties map[string]interface{} + + if compDef.Metadata.AdditionalProperties != nil { + existingAddditionalProperties = compDef.Metadata.AdditionalProperties + } + metadata := map[string]interface{}{} compMetadata, err := utils.MarshalAndUnmarshal[ComponentCSV, map[string]interface{}](*c) if err != nil { @@ -87,7 +93,6 @@ func (c *ComponentCSV) UpdateCompDefinition(compDef *component.ComponentDefiniti } var capabilities []capability.Capability if c.Capabilities != "" { - err := encoding.Unmarshal([]byte(c.Capabilities), &capabilities) if err != nil { Log.Error(err) @@ -97,6 +102,12 @@ func (c *ComponentCSV) UpdateCompDefinition(compDef *component.ComponentDefiniti compDef.Capabilities = &capabilities compDefStyles := &component.Styles{} + //Addtional properties from file + for key, value := range existingAddditionalProperties { + metadata[key] = value + } + + //metadata properties from csv for _, key := range compMetadataValues { if key == "genealogy" { genealogy, err := utils.Cast[string](compMetadata[key]) @@ -121,6 +132,7 @@ func (c *ComponentCSV) UpdateCompDefinition(compDef *component.ComponentDefiniti } } + //styling properties from csv for _, key := range compStyleValues { if c.Shape != "" { shape := c.Shape diff --git a/mesheryctl/pkg/utils/helpers.go b/mesheryctl/pkg/utils/helpers.go index 829dc4678df..e5e01ca34ee 100644 --- a/mesheryctl/pkg/utils/helpers.go +++ b/mesheryctl/pkg/utils/helpers.go @@ -3,7 +3,6 @@ package utils import ( "bufio" "bytes" - "encoding/json" "fmt" "io" "math/rand" @@ -25,8 +24,8 @@ import ( "github.com/layer5io/meshery/mesheryctl/internal/cli/root/config" "github.com/layer5io/meshery/mesheryctl/pkg/constants" "github.com/layer5io/meshery/server/models" + "github.com/layer5io/meshkit/encoding" "github.com/layer5io/meshkit/logger" - "github.com/layer5io/meshkit/utils" "github.com/olekukonko/tablewriter" "github.com/pkg/browser" "github.com/pkg/errors" @@ -650,7 +649,7 @@ func GetID(mesheryServerUrl, configuration string) ([]string, error) { return idList, ErrReadResponseBody(err) } var dat map[string]interface{} - if err = json.Unmarshal(body, &dat); err != nil { + if err = encoding.Unmarshal(body, &dat); err != nil { return idList, ErrUnmarshal(errors.Wrap(err, "failed to unmarshal response body")) } if dat == nil { @@ -686,7 +685,7 @@ func GetName(mesheryServerUrl, configuration string) (map[string]string, error) return nameIdMap, ErrReadResponseBody(err) } var dat map[string]interface{} - if err = json.Unmarshal(body, &dat); err != nil { + if err = encoding.Unmarshal(body, &dat); err != nil { return nameIdMap, ErrUnmarshal(errors.Wrap(err, "failed to unmarshal response body")) } if dat == nil { @@ -862,7 +861,7 @@ func GetSessionData(mctlCfg *config.MesheryCtlConfig) (*models.Preference, error } prefs := &models.Preference{} - err = utils.Unmarshal(string(body), prefs) + err = encoding.Unmarshal(body, prefs) if err != nil { return nil, errors.New("Failed to process JSON data. Please sign into Meshery") } diff --git a/mesheryctl/pkg/utils/platform.go b/mesheryctl/pkg/utils/platform.go index ac53fafad73..d131e3c90a0 100644 --- a/mesheryctl/pkg/utils/platform.go +++ b/mesheryctl/pkg/utils/platform.go @@ -172,7 +172,7 @@ func DownloadManifests(manifestArr []Manifest, rawManifestsURL string) error { // download the manifest files to ~/.meshery/manifests folder filepath := filepath.Join(MesheryFolder, ManifestsFolder, manifest.Path) if err := meshkitutils.DownloadFile(filepath, manifestFile); err != nil { - return errors.Wrapf(err, SystemError(fmt.Sprintf("failed to download %s file from %s", filepath, manifestFile))) + return errors.Wrapf(err, "failed to download %s file from %s", filepath, manifestFile) } } } @@ -184,19 +184,19 @@ func DownloadOperatorManifest() error { operatorFilepath := filepath.Join(MesheryFolder, ManifestsFolder, MesheryOperator) err := meshkitutils.DownloadFile(operatorFilepath, OperatorURL) if err != nil { - return errors.Wrapf(err, SystemError(fmt.Sprintf("failed to download %s file from %s operator file", operatorFilepath, MesheryOperator))) + return errors.Wrapf(err, "failed to download %s file from %s operator file", operatorFilepath, MesheryOperator) } brokerFilepath := filepath.Join(MesheryFolder, ManifestsFolder, MesheryOperatorBroker) err = meshkitutils.DownloadFile(brokerFilepath, BrokerURL) if err != nil { - return errors.Wrapf(err, SystemError(fmt.Sprintf("failed to download %s file from %s operator file", brokerFilepath, MesheryOperatorBroker))) + return errors.Wrapf(err, "failed to download %s file from %s operator file", brokerFilepath, MesheryOperatorBroker) } meshsyncFilepath := filepath.Join(MesheryFolder, ManifestsFolder, MesheryOperatorMeshsync) err = meshkitutils.DownloadFile(meshsyncFilepath, MeshsyncURL) if err != nil { - return errors.Wrapf(err, SystemError(fmt.Sprintf("failed to download %s file from %s operator file", meshsyncFilepath, MesheryOperatorMeshsync))) + return errors.Wrapf(err, "failed to download %s file from %s operator file", meshsyncFilepath, MesheryOperatorMeshsync) } return nil @@ -403,7 +403,7 @@ func DownloadDockerComposeFile(ctx *config.Context, force bool) error { } if err := meshkitutils.DownloadFile(DockerComposeFile, fileURL); err != nil { - return errors.Wrapf(err, SystemError(fmt.Sprintf("failed to download %s file from %s", DockerComposeFile, fileURL))) + return errors.Wrapf(err, "failed to download %s file from %s", DockerComposeFile, fileURL) } } return nil @@ -615,7 +615,7 @@ func CreateManifestsFolder() error { log.Debug("creating " + ManifestsFolder + "folder...") // create a manifests folder under ~/.meshery to store the manifest files if err := os.MkdirAll(filepath.Join(MesheryFolder, ManifestsFolder), os.ModePerm); err != nil { - return errors.Wrapf(err, SystemError(fmt.Sprintf("failed to make %s directory", ManifestsFolder))) + return errors.Wrapf(err, "failed to make %s directory", ManifestsFolder) } log.Debug("created manifests folder...") diff --git a/server/cmd/error.go b/server/cmd/error.go index 4b08bbf236e..4d119ceed46 100644 --- a/server/cmd/error.go +++ b/server/cmd/error.go @@ -22,10 +22,6 @@ const ( ErrCreatingOPAInstanceCode = "meshery-server-1323" ) -var ( - ErrCreatingOPAInstance = errors.New(ErrCreatingOPAInstanceCode, errors.Alert, []string{"Error creating OPA Instance."}, []string{"Unable to create OPA instance, policies will not be evaluated."}, []string{}, []string{}) -) - func ErrInitializingRegistryManager(err error) error { return errors.New(ErrInitializingRegistryManagerCode, errors.Fatal, []string{"could not initialize registry manager"}, []string{err.Error()}, []string{"could not migrate tables into the database"}, []string{"make sure the database instance passed is not nil"}) } @@ -77,3 +73,7 @@ func ErrClosingDatabaseInstance(err error) error { func ErrInitializingKeysRegistration(err error) error { return errors.New(ErrInitializingKeysRegistrationCode, errors.Fatal, []string{"could not initialize keys registry manager"}, []string{err.Error()}, []string{"could not migrate tables into the database"}, []string{"make sure the database instance passed is not nil"}) } + +func ErrCreatingOPAInstance(err error) error { + return errors.New(ErrCreatingOPAInstanceCode, errors.Alert, []string{"Error creating OPA Instance."}, []string{err.Error()}, []string{"Unable to create OPA instance, policies will not be evaluated."}, []string{"Ensure relationships are registered"}) +} \ No newline at end of file diff --git a/server/cmd/main.go b/server/cmd/main.go index 1d8b8b65ea1..61b15836329 100644 --- a/server/cmd/main.go +++ b/server/cmd/main.go @@ -280,7 +280,7 @@ func main() { models.SeedComponents(log, hc, regManager) r, err := policies.NewRegoInstance(PoliciesPath, regManager) if err != nil { - log.Warn(ErrCreatingOPAInstance) + log.Warn(ErrCreatingOPAInstance(err)) } else { rego = *r } diff --git a/server/core/utils.go b/server/core/utils.go index 09d20546558..f3a2a2d4172 100644 --- a/server/core/utils.go +++ b/server/core/utils.go @@ -1,7 +1,6 @@ package core import ( - "fmt" "io" "os" "path/filepath" @@ -40,7 +39,7 @@ func CreateManifestsFolder() error { log.Debug("creating " + ManifestsFolder + "folder...") // create a manifests folder under ~/.meshery to store the manifest files if err := os.MkdirAll(mesheryManifestFolder, os.ModePerm); err != nil { - return errors.Wrapf(err, fmt.Sprintf("failed to make %s directory", ManifestsFolder)) + return errors.Wrapf(err, "failed to make %s directory", ManifestsFolder) } log.Debug("created manifests folder...") diff --git a/server/handlers/error.go b/server/handlers/error.go index 0b60c48c0d8..71428a5d872 100644 --- a/server/handlers/error.go +++ b/server/handlers/error.go @@ -587,7 +587,7 @@ func ErrGetConnections(err error) error { } func ErrWritingIntoFile(err error, obj string) error { - return errors.New(ErrWritingIntoFileCode, errors.Alert, []string{fmt.Sprintf("failed to write into file %s" + obj)}, []string{err.Error()}, []string{"Insufficient permissions to write into file", "file might be corrupted"}, []string{"check if sufficient permissions are givent to the file", "check if the file is corrupted"}) + return errors.New(ErrWritingIntoFileCode, errors.Alert, []string{fmt.Sprintf("failed to write into file %s", obj)}, []string{err.Error()}, []string{"Insufficient permissions to write into file", "file might be corrupted"}, []string{"check if sufficient permissions are givent to the file", "check if the file is corrupted"}) } func ErrBuildOCIImg(err error) error { diff --git a/server/handlers/meshery_filter_handler.go b/server/handlers/meshery_filter_handler.go index f20b073bf9c..9d0d0ba8c86 100644 --- a/server/handlers/meshery_filter_handler.go +++ b/server/handlers/meshery_filter_handler.go @@ -156,7 +156,7 @@ func (h *Handler) handleFilterPOST( parsedBody.FilterData.Name = "meshery-filter-" + utils.GetRandomAlphabetsOfDigit(5) } // Assign a location if no location is specified - if parsedBody.FilterData.Location == nil || len(parsedBody.FilterData.Location) == 0 { + if len(parsedBody.FilterData.Location) == 0 { parsedBody.FilterData.Location = map[string]interface{}{ "host": "", "path": "", @@ -640,8 +640,8 @@ func (h *Handler) generateFilterComponent(config string) (string, error) { if ok { filterID, _ := uuid.NewV4() filterSvc := component.ComponentDefinition{ - Id: filterID, - DisplayName: strings.ToLower(filterCompDef.Component.Kind) + utils.GetRandomAlphabetsOfDigit(5), + Id: filterID, + DisplayName: strings.ToLower(filterCompDef.Component.Kind) + utils.GetRandomAlphabetsOfDigit(5), Component: component.Component{ Kind: filterCompDef.Component.Kind, Version: filterCompDef.Component.Version, @@ -649,7 +649,7 @@ func (h *Handler) generateFilterComponent(config string) (string, error) { Model: model.ModelDefinition{ Name: filterCompDef.Model.Name, Model: model.Model{ - Version: filterCompDef.Model.Model.Version, + Version: filterCompDef.Model.Model.Version, }, }, Metadata: component.ComponentDefinition_Metadata{ diff --git a/server/handlers/meshery_pattern_handler.go b/server/handlers/meshery_pattern_handler.go index 313b84c5b44..6a67cc6cf5f 100644 --- a/server/handlers/meshery_pattern_handler.go +++ b/server/handlers/meshery_pattern_handler.go @@ -12,6 +12,7 @@ import ( "os" "path" "path/filepath" + "slices" "strconv" "strings" "sync" @@ -26,7 +27,6 @@ import ( "github.com/layer5io/meshery/server/models" pCore "github.com/layer5io/meshery/server/models/pattern/core" "github.com/layer5io/meshery/server/models/pattern/resource/selector" - "github.com/layer5io/meshery/server/models/pattern/stages" patternutils "github.com/layer5io/meshery/server/models/pattern/utils" "github.com/layer5io/meshkit/encoding" "github.com/layer5io/meshkit/errors" @@ -43,6 +43,7 @@ import ( "github.com/layer5io/meshkit/utils/kubernetes/kompose" "github.com/layer5io/meshkit/utils/walker" + regv1beta1 "github.com/layer5io/meshkit/models/meshmodel/registry/v1beta1" "github.com/meshery/schemas/models/v1alpha2" "github.com/meshery/schemas/models/v1beta1/component" "github.com/meshery/schemas/models/v1beta1/connection" @@ -341,6 +342,9 @@ func (h *Handler) handlePatternPOST( if sourcetype == string(models.HelmChart) { helmSourceResp, err := http.Get(parsedBody.URL) defer func() { + if helmSourceResp == nil { + return + } _ = helmSourceResp.Body.Close() }() if err != nil { @@ -404,7 +408,7 @@ func (h *Handler) handlePatternPOST( return } - bytPattern, _ := yaml.Marshal(pattern) + bytPattern, _ := encoding.Marshal(pattern) mesheryPattern = &models.MesheryPattern{ Name: parsedBody.Name, @@ -762,7 +766,7 @@ func githubRepoDesignScan( return err //always a meshkit error } - patternByt, _ := yaml.Marshal(pattern) + patternByt, _ := encoding.Marshal(pattern) af := models.MesheryPattern{ Name: strings.TrimSuffix(f.Name, ext), @@ -836,7 +840,7 @@ func genericHTTPDesignFile(fileURL, patternName, sourceType string, reg *meshmod pattern.Name = patternName } - patternByt, _ := yaml.Marshal(pattern) + patternByt, _ := encoding.Marshal(pattern) url := strings.Split(fileURL, "/") af := models.MesheryPattern{ @@ -1450,20 +1454,19 @@ func (h *Handler) CloneMesheryPatternHandler( return } pattern.PatternFile = patternFileStr - } - - _, err = provider.SaveMesheryPattern(token, pattern) - if err != nil { - h.log.Error(ErrSavePattern(err)) - http.Error(rw, ErrSavePattern(err).Error(), http.StatusInternalServerError) + _, err = provider.SaveMesheryPattern(token, pattern) + if err != nil { + h.log.Error(ErrSavePattern(err)) + http.Error(rw, ErrSavePattern(err).Error(), http.StatusInternalServerError) - event := eventBuilder.WithSeverity(events.Error).WithMetadata(map[string]interface{}{ - "error": ErrSavePattern(_errors.Wrapf(err, "failed to persist converted v1beta1 design file \"%s\" with id: %s", parsedBody.Name, patternID)), - }).WithDescription(ErrSavePattern(err).Error()).Build() + event := eventBuilder.WithSeverity(events.Error).WithMetadata(map[string]interface{}{ + "error": ErrSavePattern(_errors.Wrapf(err, "failed to persist converted v1beta1 design file \"%s\" with id: %s", parsedBody.Name, patternID)), + }).WithDescription(ErrSavePattern(err).Error()).Build() - _ = provider.PersistEvent(event) - go h.config.EventBroadcaster.Publish(userID, event) - return + _ = provider.PersistEvent(event) + go h.config.EventBroadcaster.Publish(userID, event) + return + } } resp, err := provider.CloneMesheryPattern(r, patternID, parsedBody) @@ -1736,7 +1739,10 @@ func (h *Handler) GetMesheryPatternHandler( } rw.Header().Set("Content-Type", "application/json") - json.NewEncoder(rw).Encode(pattern) + if err := json.NewEncoder(rw).Encode(pattern); err != nil { + http.Error(rw, "Failed to encode response", http.StatusInternalServerError) + return + } } func (h *Handler) formatPatternOutput(rw http.ResponseWriter, content []byte, format, sourcetype string, eventBuilder *events.EventBuilder, URL, action string) { @@ -1781,21 +1787,24 @@ func (h *Handler) formatPatternOutput(rw http.ResponseWriter, content []byte, fo // Since the client currently does not support pattern imports and externalized variables, the first(import) stage of pattern engine // is evaluated here to simplify the pattern file such that it is valid when a deploy takes place -func evalImportAndReferenceStage(p *pattern.PatternFile) (newp pattern.PatternFile) { - chain := stages.CreateChain() - chain. - // Add(stages.Import(sip, sap)). enable this - Add(stages.Filler(false)). - Add(func(data *stages.Data, err error, next stages.ChainStageNextFunction) { - data.Lock.Lock() - newp = *data.Pattern - data.Lock.Unlock() - }). - Process(&stages.Data{ - Pattern: p, - }) - return newp -} + +//unsued currently + +// func evalImportAndReferenceStage(p *pattern.PatternFile) (newp pattern.PatternFile) { +// chain := stages.CreateChain() +// chain. +// // Add(stages.Import(sip, sap)). enable this +// Add(stages.Filler(false)). +// Add(func(data *stages.Data, err error, next stages.ChainStageNextFunction) { +// data.Lock.Lock() +// newp = *data.Pattern +// data.Lock.Unlock() +// }). +// Process(&stages.Data{ +// Pattern: p, +// }) +// return newp +// } // Only pass Meshkit err here or there will be a panic func addMeshkitErr(res *meshes.EventsResponse, err error) { @@ -2069,9 +2078,34 @@ func mapModelRelatedData(reg *meshmodel.RegistryManager, patternFile *pattern.Pa continue } - wc, err := s.GetDefinition(comp.Component.Kind, comp.Model.Model.Version, comp.Model.Name, comp.Component.Version) + wc, err := s.GetDefinition(comp.Component.Kind, comp.Model.Model.Version, comp.Model.Name, comp.Component.Version, true) if err != nil { - return err + m := []string{"meshery", "meshery-core", "meshery-shapes", "meshery-flowchart"} + // if model is one of those defined in the slice above as meshery, and no matching defs were found, + // try to find the component just by name, this ensures the component is upgraded to newer model. + // Eg: Some old designs contains "Comment" component under "meshery" model instead of "meshery-core" + + + // Update the component kind to reflect the current registry. + // Eg: The Connection component for k8s, had "kind" updated to "KuberntesConnection",hence any designs which has model k8s and kind "Connection" will fail, to ensure it gets converted, update the kind + if comp.Model.Name == "kubernetes" && comp.Component.Kind == "Connection" { + comp.Component.Kind = "KubernetesConnection" + } else if comp.Model.Name == "aws" || comp.Model.Name == "gcp" { + comp.Component.Kind = fmt.Sprintf("%s %s", strings.ToUpper(comp.Model.Name), comp.Component.Kind) + } else if !slices.Contains(m, comp.Model.Name) { + return err + } + + entities, _, _, _ := reg.GetEntities(®v1beta1.ComponentFilter{ + Name: comp.Component.Kind, + APIVersion: comp.Component.Version, + }) + comp, found := selector.FindCompDefinitionWithVersion(entities, comp.Model.Model.Version) + + if found { + wc = *comp + } + } comp.Model = wc.Model diff --git a/server/handlers/middlewares.go b/server/handlers/middlewares.go index 3cc285667be..69a235d7d12 100644 --- a/server/handlers/middlewares.go +++ b/server/handlers/middlewares.go @@ -81,7 +81,7 @@ func (h *Handler) AuthMiddleware(next http.Handler, auth models.AuthenticationMe // Propagate existing request parameters, if present. queryParams := req.URL.Query() if refURLB64 != "" { - queryParams["ref"] = []string{refURLB64} + queryParams["ref"] = []string{refURLB64} } providerI := req.Context().Value(models.ProviderCtxKey) // logrus.Debugf("models.ProviderCtxKey %s", models.ProviderCtxKey) @@ -102,7 +102,7 @@ func (h *Handler) AuthMiddleware(next http.Handler, auth models.AuthenticationMe isValid, err := h.validateAuth(provider, req) // logrus.Debugf("validate auth: %t", isValid) if !isValid { - if !errors.Is(models.ErrEmptySession, err) && provider.GetProviderType() == models.RemoteProviderType { + if !errors.Is(err, models.ErrEmptySession) && provider.GetProviderType() == models.RemoteProviderType { provider.HandleUnAuthenticated(w, req) return } diff --git a/server/handlers/pattern_handler_test.go b/server/handlers/pattern_handler_test.go index c7e780c3c93..4ad874b9c57 100644 --- a/server/handlers/pattern_handler_test.go +++ b/server/handlers/pattern_handler_test.go @@ -15,165 +15,165 @@ package handlers // "github.com/spf13/viper" // ) -var testPatternFile = ` -name: GuestBook App -version: 0.0.11 -services: - frontend-dtrds: - annotations: {} - apiVersion: v1 - dependsOn: [] - id: null - isAnnotation: null - labels: {} - model: kubernetes - name: frontend - namespace: default - settings: - spec: - ports: - - port: 80 - protocol: TCP - - port: 80 - protocol: TCP - selector: - app: guestbook - tier: frontend - traits: - meshmap: - edges: - - data: - id: 499a0982-138b-48f0-bfc0-4b2c9f711510 - metadata: - port: 80 - protocol: TCP - source: 4ae55da0-82eb-405e-9410-75623cee1043 - subType: Network - target: 43a7b935-6109-4f5c-84fb-5e3454f9c6d1 - style: - control-point-distances: null - control-point-weights: "0.5" - curve-style: bezier - haystack-radius: "0" - line-color: rgb(153,153,153) - line-style: dotted - opacity: "1" - segment-distances: 20px - segment-weights: "0.5" - target-arrow-shape: vee - taxi-direction: auto - taxi-turn: 50% - taxi-turn-min-distance: 10px - width: 1.5px - fieldRefData: {} - id: 4ae55da0-82eb-405e-9410-75623cee1043 - label: frontend - meshmodel-metadata: - genealogy: "" - isCustomResource: false - isNamespaced: true - logoURL: https://github.com/cncf/artwork/blob/master/projects/kubernetes/icon/white/kubernetes-icon-white.svg - model: kubernetes - modelDisplayName: Kubernetes - primaryColor: '#326CE5' - published: true - secondaryColor: '#7aa1f0' - shape: round-triangle - styleOverrides: - background-fit: none - background-position-y: 4.5 - height: 16 - padding: 12 - width: 17 - z-index: 3 - subCategory: Scheduling & Orchestration - svgColor: ui/public/static/img/meshmodels/kubernetes/color/apiservice-color.svg - svgComplete: "" - svgWhite: ui/public/static/img/meshmodels/kubernetes/white/apiservice-white.svg - position: - posX: 710 - posY: 570 - whiteboardData: - style: - z-index: 15 - type: Service - version: "" - frontend-mzdsv: - annotations: {} - apiVersion: apps/v1 - dependsOn: [] - id: null - isAnnotation: null - labels: {} - model: kubernetes - name: frontend - namespace: "" - settings: - spec: - replicas: 3 - selector: - match Labels: - app: guestbook - tier: frontend - template: - metadata: - labels: - app: guestbook - tier: frontend - spec: - containers: - - env: - - name: GET_HOSTS_FROM - value: dns - image: gcr.io/google_samples/gb-frontend:v5 - name: php-redis - ports: - - container Port: 80 - resources: - requests: - cpu: 100m - memory: 100Mi - traits: - meshmap: - edges: - - data: - id: 499a0982-138b-48f0-bfc0-4b2c9f711510 - metadata: - port: 80 - protocol: TCP - source: 4ae55da0-82eb-405e-9410-75623cee1043 - subType: Network - target: 43a7b935-6109-4f5c-84fb-5e3454f9c6d1 - style: - control-point-distances: null - control-point-weights: "0.5" - curve-style: bezier - haystack-radius: "0" - line-color: rgb(153,153,153) - line-style: dotted - opacity: "1" - segment-distances: 20px - segment-weights: "0.5" - target-arrow-shape: vee - taxi-direction: auto - taxi-turn: 50% - taxi-turn-min-distance: 10px - width: 1.5px - fieldRefData: {} - id: 43a7b935-6109-4f5c-84fb-5e3454f9c6d1 - label: frontend - meshmodel-metadata: - styleOverrides: - z-index: 18 - position: - posX: 710 - posY: 690 - whiteboardData: - style: - z-index: 9 - type: Deployment - version: "" -` +// var testPatternFile = ` +// name: GuestBook App +// version: 0.0.11 +// services: +// frontend-dtrds: +// annotations: {} +// apiVersion: v1 +// dependsOn: [] +// id: null +// isAnnotation: null +// labels: {} +// model: kubernetes +// name: frontend +// namespace: default +// settings: +// spec: +// ports: +// - port: 80 +// protocol: TCP +// - port: 80 +// protocol: TCP +// selector: +// app: guestbook +// tier: frontend +// traits: +// meshmap: +// edges: +// - data: +// id: 499a0982-138b-48f0-bfc0-4b2c9f711510 +// metadata: +// port: 80 +// protocol: TCP +// source: 4ae55da0-82eb-405e-9410-75623cee1043 +// subType: Network +// target: 43a7b935-6109-4f5c-84fb-5e3454f9c6d1 +// style: +// control-point-distances: null +// control-point-weights: "0.5" +// curve-style: bezier +// haystack-radius: "0" +// line-color: rgb(153,153,153) +// line-style: dotted +// opacity: "1" +// segment-distances: 20px +// segment-weights: "0.5" +// target-arrow-shape: vee +// taxi-direction: auto +// taxi-turn: 50% +// taxi-turn-min-distance: 10px +// width: 1.5px +// fieldRefData: {} +// id: 4ae55da0-82eb-405e-9410-75623cee1043 +// label: frontend +// meshmodel-metadata: +// genealogy: "" +// isCustomResource: false +// isNamespaced: true +// logoURL: https://github.com/cncf/artwork/blob/master/projects/kubernetes/icon/white/kubernetes-icon-white.svg +// model: kubernetes +// modelDisplayName: Kubernetes +// primaryColor: '#326CE5' +// published: true +// secondaryColor: '#7aa1f0' +// shape: round-triangle +// styleOverrides: +// background-fit: none +// background-position-y: 4.5 +// height: 16 +// padding: 12 +// width: 17 +// z-index: 3 +// subCategory: Scheduling & Orchestration +// svgColor: ui/public/static/img/meshmodels/kubernetes/color/apiservice-color.svg +// svgComplete: "" +// svgWhite: ui/public/static/img/meshmodels/kubernetes/white/apiservice-white.svg +// position: +// posX: 710 +// posY: 570 +// whiteboardData: +// style: +// z-index: 15 +// type: Service +// version: "" +// frontend-mzdsv: +// annotations: {} +// apiVersion: apps/v1 +// dependsOn: [] +// id: null +// isAnnotation: null +// labels: {} +// model: kubernetes +// name: frontend +// namespace: "" +// settings: +// spec: +// replicas: 3 +// selector: +// match Labels: +// app: guestbook +// tier: frontend +// template: +// metadata: +// labels: +// app: guestbook +// tier: frontend +// spec: +// containers: +// - env: +// - name: GET_HOSTS_FROM +// value: dns +// image: gcr.io/google_samples/gb-frontend:v5 +// name: php-redis +// ports: +// - container Port: 80 +// resources: +// requests: +// cpu: 100m +// memory: 100Mi +// traits: +// meshmap: +// edges: +// - data: +// id: 499a0982-138b-48f0-bfc0-4b2c9f711510 +// metadata: +// port: 80 +// protocol: TCP +// source: 4ae55da0-82eb-405e-9410-75623cee1043 +// subType: Network +// target: 43a7b935-6109-4f5c-84fb-5e3454f9c6d1 +// style: +// control-point-distances: null +// control-point-weights: "0.5" +// curve-style: bezier +// haystack-radius: "0" +// line-color: rgb(153,153,153) +// line-style: dotted +// opacity: "1" +// segment-distances: 20px +// segment-weights: "0.5" +// target-arrow-shape: vee +// taxi-direction: auto +// taxi-turn: 50% +// taxi-turn-min-distance: 10px +// width: 1.5px +// fieldRefData: {} +// id: 43a7b935-6109-4f5c-84fb-5e3454f9c6d1 +// label: frontend +// meshmodel-metadata: +// styleOverrides: +// z-index: 18 +// position: +// posX: 710 +// posY: 690 +// whiteboardData: +// style: +// z-index: 9 +// type: Deployment +// version: "" +// ` // func TestPatternFileConversionFromV1Alpha1ToV1Beta1(t *testing.T) { diff --git a/server/handlers/policy_relationship_handler.go b/server/handlers/policy_relationship_handler.go index d302f475338..31333675ed5 100644 --- a/server/handlers/policy_relationship_handler.go +++ b/server/handlers/policy_relationship_handler.go @@ -17,9 +17,7 @@ import ( "github.com/layer5io/meshkit/models/events" - regv1alpha3 "github.com/layer5io/meshkit/models/meshmodel/registry/v1alpha3" regv1beta1 "github.com/layer5io/meshkit/models/meshmodel/registry/v1beta1" - mutils "github.com/layer5io/meshkit/utils" ) const ( @@ -91,12 +89,12 @@ func (h *Handler) EvaluateRelationshipPolicy( "evaluated_at": *evaluationResponse.Timestamp, }).WithSeverity(events.Informational).Build() _ = provider.PersistEvent(event) - + // Create the event but do not notify the client immediately, as the evaluations are frequent and takes up the view area. // go h.config.EventBroadcaster.Publish(userUUID, event) if relationshipPolicyEvalPayload.Options != nil && relationshipPolicyEvalPayload.Options.ReturnDiffOnly != nil && - *relationshipPolicyEvalPayload.Options.ReturnDiffOnly { + *relationshipPolicyEvalPayload.Options.ReturnDiffOnly { evaluationResponse.Design.Components = []*component.ComponentDefinition{} evaluationResponse.Design.Relationships = []*relationship.RelationshipDefinition{} for _, component := range evaluationResponse.Trace.ComponentsUpdated { @@ -133,39 +131,41 @@ func (h *Handler) EvaluateRelationshipPolicy( } } -func (h *Handler) verifyEvaluationQueries(evaluationQueries []string) (verifiedEvaluationQueries []string) { - registeredRelationships, _, _, _ := h.registryManager.GetEntities(®v1alpha3.RelationshipFilter{}) - - var relationships []relationship.RelationshipDefinition - for _, entity := range registeredRelationships { - relationship, err := mutils.Cast[*relationship.RelationshipDefinition](entity) - - if err != nil { - return - } - relationships = append(relationships, *relationship) - } - - if len(evaluationQueries) == 0 || (len(evaluationQueries) == 1 && evaluationQueries[0] == "all") { - for _, relationship := range relationships { - if relationship.EvaluationQuery != nil { - verifiedEvaluationQueries = append(verifiedEvaluationQueries, *relationship.EvaluationQuery) - } else { - verifiedEvaluationQueries = append(verifiedEvaluationQueries, relationship.GetDefaultEvaluationQuery()) - } - } - } else { - for _, regoQuery := range evaluationQueries { - for _, relationship := range relationships { - if (relationship.EvaluationQuery != nil && regoQuery == *relationship.EvaluationQuery) || regoQuery == relationship.GetDefaultEvaluationQuery() { - verifiedEvaluationQueries = append(verifiedEvaluationQueries, *relationship.EvaluationQuery) - break - } - } - } - } - return -} +// unused currently + +// func (h *Handler) verifyEvaluationQueries(evaluationQueries []string) (verifiedEvaluationQueries []string) { +// registeredRelationships, _, _, _ := h.registryManager.GetEntities(®v1alpha3.RelationshipFilter{}) + +// var relationships []relationship.RelationshipDefinition +// for _, entity := range registeredRelationships { +// relationship, err := mutils.Cast[*relationship.RelationshipDefinition](entity) + +// if err != nil { +// return +// } +// relationships = append(relationships, *relationship) +// } + +// if len(evaluationQueries) == 0 || (len(evaluationQueries) == 1 && evaluationQueries[0] == "all") { +// for _, relationship := range relationships { +// if relationship.EvaluationQuery != nil { +// verifiedEvaluationQueries = append(verifiedEvaluationQueries, *relationship.EvaluationQuery) +// } else { +// verifiedEvaluationQueries = append(verifiedEvaluationQueries, relationship.GetDefaultEvaluationQuery()) +// } +// } +// } else { +// for _, regoQuery := range evaluationQueries { +// for _, relationship := range relationships { +// if (relationship.EvaluationQuery != nil && regoQuery == *relationship.EvaluationQuery) || regoQuery == relationship.GetDefaultEvaluationQuery() { +// verifiedEvaluationQueries = append(verifiedEvaluationQueries, *relationship.EvaluationQuery) +// break +// } +// } +// } +// } +// return +// } // swagger:route GET /api/meshmodels/models/{model}/policies/{name} GetMeshmodelPoliciesByName idGetMeshmodelPoliciesByName // Handle GET request for getting meshmodel policies of a specific model by name. diff --git a/server/helpers/utils/utils.go b/server/helpers/utils/utils.go index de76d29752e..04d5c7bfc7f 100644 --- a/server/helpers/utils/utils.go +++ b/server/helpers/utils/utils.go @@ -14,7 +14,9 @@ import ( "strings" "sync" + "github.com/layer5io/meshkit/encoding" "github.com/layer5io/meshkit/utils" + "github.com/meshery/schemas/models/v1beta1/component" "golang.org/x/text/cases" @@ -362,7 +364,7 @@ func MarshalAndUnmarshal[k any, v any](val k) (unmarshalledvalue v, err error) { return } - err = utils.Unmarshal(data, &unmarshalledvalue) + err = encoding.Unmarshal([]byte(data), &unmarshalledvalue) if err != nil { return } diff --git a/server/internal/graphql/model/control_plane_helper.go b/server/internal/graphql/model/control_plane_helper.go index b9744c09030..ca72c6056bb 100644 --- a/server/internal/graphql/model/control_plane_helper.go +++ b/server/internal/graphql/model/control_plane_helper.go @@ -5,7 +5,8 @@ import ( "strings" "github.com/layer5io/meshery/server/models" - "github.com/layer5io/meshkit/utils" + "github.com/layer5io/meshkit/encoding" + meshsyncmodel "github.com/layer5io/meshsync/pkg/model" corev1 "k8s.io/api/core/v1" @@ -38,7 +39,7 @@ func GetControlPlaneState(ctx context.Context, selectors []MeshType, provider mo } if meshsyncmodel.IsObject(obj) { //As a fallback extract objectmeta manually, if possible objspec := corev1.PodSpec{} - err := utils.Unmarshal(obj.Spec.Attribute, &objspec) + err := encoding.Unmarshal([]byte(obj.Spec.Attribute), &objspec) if err != nil { return nil, err } diff --git a/server/internal/graphql/model/data_plane_helper.go b/server/internal/graphql/model/data_plane_helper.go index 1fca1b64b58..4017d8bd8b6 100644 --- a/server/internal/graphql/model/data_plane_helper.go +++ b/server/internal/graphql/model/data_plane_helper.go @@ -6,7 +6,8 @@ import ( "strings" "github.com/layer5io/meshery/server/models" - "github.com/layer5io/meshkit/utils" + "github.com/layer5io/meshkit/encoding" + meshsyncmodel "github.com/layer5io/meshsync/pkg/model" corev1 "k8s.io/api/core/v1" @@ -44,13 +45,13 @@ func GetDataPlaneState(ctx context.Context, selectors []MeshType, provider model objstatus := corev1.PodStatus{} // unmarshal resource_specs - err := utils.Unmarshal(obj.Spec.Attribute, &objspec) + err := encoding.Unmarshal([]byte(obj.Spec.Attribute), &objspec) if err != nil { return nil, err } // unmarshal resource_statuses - err = utils.Unmarshal(obj.Status.Attribute, &objstatus) + err = encoding.Unmarshal([]byte(obj.Status.Attribute), &objstatus) if err != nil { return nil, err } diff --git a/server/machines/helpers/auto_register.go b/server/machines/helpers/auto_register.go index 7b2390b378d..33c03018313 100644 --- a/server/machines/helpers/auto_register.go +++ b/server/machines/helpers/auto_register.go @@ -13,11 +13,13 @@ import ( "github.com/layer5io/meshery/server/machines" "github.com/layer5io/meshery/server/models" "github.com/layer5io/meshkit/database" + "github.com/layer5io/meshkit/encoding" "github.com/layer5io/meshkit/logger" "github.com/layer5io/meshkit/models/events" - "github.com/meshery/schemas/models/v1beta1/component" regv1beta1 "github.com/layer5io/meshkit/models/meshmodel/registry/v1beta1" "github.com/layer5io/meshkit/utils" + "github.com/meshery/schemas/models/v1beta1/component" + meshsyncmodel "github.com/layer5io/meshsync/pkg/model" "github.com/spf13/viper" ) @@ -87,7 +89,7 @@ func (arh *AutoRegistrationHelper) processRegistration() { continue } var capabilities map[string]interface{} - err = utils.Unmarshal(connCapabilities, &capabilities) + err = encoding.Unmarshal([]byte(connCapabilities), &capabilities) if err != nil { arh.log.Error(models.ErrUnmarshal(err, fmt.Sprintf("Connection Definition \"%s\" capabilities", connectionDef.Component.Kind))) continue diff --git a/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseInstallation.json b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseInstallation.json new file mode 100644 index 00000000000..c2486804c63 --- /dev/null +++ b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseInstallation.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ClickHouseInstallation", + "schema": "{\n \"description\": \"define a set of Kubernetes resources (StatefulSet, PVC, Service, ConfigMap) which describe behavior one or more ClickHouse clusters\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of one or more ClickHouse clusters\\nMore info: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md\\n\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"allows configure multiple aspects and behavior for `clickhouse-server` instance and also allows describe multiple `clickhouse-server` clusters inside one `chi` resource\",\n \"properties\": {\n \"clusters\": {\n \"description\": \"describes ClickHouse clusters layout and allows change settings on cluster-level, shard-level and replica-level\\nevery cluster is a set of StatefulSet, one StatefulSet contains only one Pod with `clickhouse-server`\\nall Pods will rendered in \\u003cremote_server\\u003e part of ClickHouse configs, mounted from ConfigMap as `/etc/clickhouse-server/config.d/chop-generated-remote_servers.xml`\\nClusters will use for Distributed table engine, more details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/\\nIf `cluster` contains zookeeper settings (could be inherited from top `chi` level), when you can create *ReplicatedMergeTree tables\\n\",\n \"items\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` on current cluster during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files`\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"insecure\": {\n \"description\": \"optional, open insecure ports for cluster, defaults to \\\"yes\\\"\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"layout\": {\n \"description\": \"describe current cluster layout, how much shards in cluster, how much replica in shard\\nallows override settings on each shard and replica separatelly\\n\",\n \"properties\": {\n \"replicas\": {\n \"description\": \"optional, allows override top-level `chi.spec.configuration` and cluster-level `chi.spec.configuration.clusters` configuration for each replica and each shard relates to selected replica, use it only if you fully understand what you do\",\n \"items\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`, will ignore if `chi.spec.configuration.clusters.layout.shards` presents\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"optional, by default replica name is generated, but you can override it and setup custom name\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`\\noverride top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and will ignore if shard-level `chi.spec.configuration.clusters.layout.shards` present\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"shards\": {\n \"description\": \"optional, list of shards related to current replica, will ignore if `chi.spec.configuration.clusters.layout.shards` presents\",\n \"items\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` only in one shard related to current replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`, will ignore if `chi.spec.configuration.clusters.layout.shards` presents\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"httpPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `http` for selected shard, override `chi.spec.templates.hostTemplates.spec.httpPort`\\nallows connect to `clickhouse-server` via HTTP protocol via kubernetes `Service`\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"httpsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"insecure\": {\n \"description\": \"optional, open insecure ports for cluster, defaults to \\\"yes\\\"\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"interserverHTTPPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `interserver` for selected shard, override `chi.spec.templates.hostTemplates.spec.interserverHTTPPort`\\nallows connect between replicas inside same shard during fetch replicated data parts HTTP protocol\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"optional, by default shard name is generated, but you can override it and setup custom name\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"optional, open secure ports\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in `Pod` only in one shard related to current replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`\\noverride top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and replica-level `chi.spec.configuration.clusters.layout.replicas.settings`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"tcpPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `tcp` for selected shard, override `chi.spec.templates.hostTemplates.spec.tcpPort`\\nallows connect to `clickhouse-server` via TCP Native protocol via kubernetes `Service`\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica\\noverride top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"shardsCount\": {\n \"description\": \"optional, count of shards related to current replica, you can override each shard behavior on low-level `chi.spec.configuration.clusters.layout.replicas.shards`\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica\\noverride top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"replicasCount\": {\n \"description\": \"how much replicas in each shards for current ClickHouse cluster will run in Kubernetes, each replica is a separate `StatefulSet` which contains only one `Pod` with `clickhouse-server` instance, every shard contains 1 replica by default\",\n \"type\": \"integer\"\n },\n \"shards\": {\n \"description\": \"optional, allows override top-level `chi.spec.configuration`, cluster-level `chi.spec.configuration.clusters` settings for each shard separately, use it only if you fully understand what you do\",\n \"items\": {\n \"properties\": {\n \"definitionType\": {\n \"description\": \"DEPRECATED - to be removed soon\",\n \"type\": \"string\"\n },\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` only in one shard during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"internalReplication\": {\n \"description\": \"optional, `true` by default when `chi.spec.configuration.clusters[].layout.ReplicaCount` \\u003e 1 and 0 otherwise\\nallows setup \\u003cinternal_replication\\u003e setting which will use during insert into tables with `Distributed` engine for insert only in one live replica and other replicas will download inserted data during replication,\\nwill apply in \\u003cremote_servers\\u003e inside ConfigMap which will mount in /etc/clickhouse-server/config.d/chop-generated-remote_servers.xml\\nMore details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"optional, by default shard name is generated, but you can override it and setup custom name\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"optional, allows override behavior for selected replicas from cluster-level `chi.spec.configuration.clusters` and shard-level `chi.spec.configuration.clusters.layout.shards`\\n\",\n \"items\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files`, cluster-level `chi.spec.configuration.clusters.files` and shard-level `chi.spec.configuration.clusters.layout.shards.files`\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"httpPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `http` for selected replica, override `chi.spec.templates.hostTemplates.spec.httpPort`\\nallows connect to `clickhouse-server` via HTTP protocol via kubernetes `Service`\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"httpsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"insecure\": {\n \"description\": \"optional, open insecure ports for cluster, defaults to \\\"yes\\\"\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"interserverHTTPPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `interserver` for selected replica, override `chi.spec.templates.hostTemplates.spec.interserverHTTPPort`\\nallows connect between replicas inside same shard during fetch replicated data parts HTTP protocol\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"optional, by default replica name is generated, but you can override it and setup custom name\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"optional, open secure ports\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`\\noverride top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and shard-level `chi.spec.configuration.clusters.layout.shards.settings`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"tcpPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `tcp` for selected replica, override `chi.spec.templates.hostTemplates.spec.tcpPort`\\nallows connect to `clickhouse-server` via TCP Native protocol via kubernetes `Service`\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica\\noverride top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates` and shard-level `chi.spec.configuration.clusters.layout.shards.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"replicasCount\": {\n \"description\": \"optional, how much replicas in selected shard for selected ClickHouse cluster will run in Kubernetes, each replica is a separate `StatefulSet` which contains only one `Pod` with `clickhouse-server` instance,\\nshard contains 1 replica by default\\noverride cluster-level `chi.spec.configuration.clusters.layout.replicasCount`\\n\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in each `Pod` only in one shard during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`\\noverride top-level `chi.spec.configuration.settings` and cluster-level `chi.spec.configuration.clusters.settings`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected shard\\noverride top-level `chi.spec.configuration.templates` and cluster-level `chi.spec.configuration.clusters.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"optional, 1 by default, allows setup shard \\u003cweight\\u003e setting which will use during insert into tables with `Distributed` engine,\\nwill apply in \\u003cremote_servers\\u003e inside ConfigMap which will mount in /etc/clickhouse-server/config.d/chop-generated-remote_servers.xml\\nMore details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/\\n\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"shardsCount\": {\n \"description\": \"how much shards for current ClickHouse cluster will run in Kubernetes, each shard contains shared-nothing part of data and contains set of replicas, cluster contains 1 shard by default\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"DEPRECATED - to be removed soon\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"cluster name, used to identify set of ClickHouse servers and wide used during generate names of related Kubernetes resources\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"schemaPolicy\": {\n \"description\": \"describes how schema is propagated within replicas and shards\\n\",\n \"properties\": {\n \"replica\": {\n \"description\": \"how schema is propagated within a replica\",\n \"enum\": [\n \"\",\n \"None\",\n \"All\"\n ],\n \"type\": \"string\"\n },\n \"shard\": {\n \"description\": \"how schema is propagated between shards\",\n \"enum\": [\n \"\",\n \"None\",\n \"All\",\n \"DistributedTablesOnly\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"optional, shared secret value to secure cluster communications\",\n \"properties\": {\n \"auto\": {\n \"description\": \"Auto-generate shared secret value to secure cluster communications\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Cluster shared secret value in plain text\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Cluster shared secret source\",\n \"properties\": {\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the clickhouse installation namespace.\\nShould not be used if value is not empty.\\n\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info:\\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\n\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"name\",\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"secure\": {\n \"description\": \"optional, open secure ports for cluster\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in each `Pod` only in one cluster during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`\\noverride top-level `chi.spec.configuration.settings`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected cluster\\noverride top-level `chi.spec.configuration.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"zookeeper\": {\n \"description\": \"optional, allows configure \\u003cyandex\\u003e\\u003czookeeper\\u003e..\\u003c/zookeeper\\u003e\\u003c/yandex\\u003e section in each `Pod` only in current ClickHouse cluster, during generate `ConfigMap` which will mounted in `/etc/clickhouse-server/config.d/`\\noverride top-level `chi.spec.configuration.zookeeper` settings\\n\",\n \"properties\": {\n \"identity\": {\n \"description\": \"optional access credentials string with `user:password` format used when use digest authorization in Zookeeper\",\n \"type\": \"string\"\n },\n \"nodes\": {\n \"description\": \"describe every available zookeeper cluster node for interaction\",\n \"items\": {\n \"properties\": {\n \"host\": {\n \"description\": \"dns name or ip address for Zookeeper node\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"TCP port which used to connect to Zookeeper node\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"secure\": {\n \"description\": \"if a secure connection to Zookeeper is required\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"operation_timeout_ms\": {\n \"description\": \"one operation timeout during Zookeeper transactions\",\n \"type\": \"integer\"\n },\n \"root\": {\n \"description\": \"optional root znode path inside zookeeper to store ClickHouse related data (replication queue or distributed DDL)\",\n \"type\": \"string\"\n },\n \"session_timeout_ms\": {\n \"description\": \"session timeout during connect to Zookeeper\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"files\": {\n \"description\": \"allows define content of any setting file inside each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\nevery key in this object is the file name\\nevery value in this object is the file content\\nyou can use `!!binary |` and base64 for binary files, see details here https://yaml.org/type/binary.html\\neach key could contains prefix like USERS, COMMON, HOST or config.d, users.d, cond.d, wrong prefixes will ignored, subfolders also will ignored\\nMore details: https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/05-settings-05-files-nested.yaml\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"profiles\": {\n \"description\": \"allows configure \\u003cyandex\\u003e\\u003cprofiles\\u003e..\\u003c/profiles\\u003e\\u003c/yandex\\u003e section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`\\nyou can configure any aspect of settings profile\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings-profiles/\\nYour yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationprofiles\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"quotas\": {\n \"description\": \"allows configure \\u003cyandex\\u003e\\u003cquotas\\u003e..\\u003c/quotas\\u003e\\u003c/yandex\\u003e section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`\\nyou can configure any aspect of resource quotas\\nMore details: https://clickhouse.tech/docs/en/operations/quotas/\\nYour yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationquotas\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\nYour yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationsettings\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"users\": {\n \"description\": \"allows configure \\u003cyandex\\u003e\\u003cusers\\u003e..\\u003c/users\\u003e\\u003c/yandex\\u003e section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`\\nyou can configure password hashed, authorization restrictions, database level security row filters etc.\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings-users/\\nYour yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationusers\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"zookeeper\": {\n \"description\": \"allows configure \\u003cyandex\\u003e\\u003czookeeper\\u003e..\\u003c/zookeeper\\u003e\\u003c/yandex\\u003e section in each `Pod` during generate `ConfigMap` which will mounted in `/etc/clickhouse-server/config.d/`\\n`clickhouse-operator` itself doesn't manage Zookeeper, please install Zookeeper separatelly look examples on https://github.com/Altinity/clickhouse-operator/tree/master/deploy/zookeeper/\\ncurrently, zookeeper (or clickhouse-keeper replacement) used for *ReplicatedMergeTree table engines and for `distributed_ddl`\\nMore details: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings_zookeeper\\n\",\n \"properties\": {\n \"identity\": {\n \"description\": \"optional access credentials string with `user:password` format used when use digest authorization in Zookeeper\",\n \"type\": \"string\"\n },\n \"nodes\": {\n \"description\": \"describe every available zookeeper cluster node for interaction\",\n \"items\": {\n \"properties\": {\n \"host\": {\n \"description\": \"dns name or ip address for Zookeeper node\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"TCP port which used to connect to Zookeeper node\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"secure\": {\n \"description\": \"if a secure connection to Zookeeper is required\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"operation_timeout_ms\": {\n \"description\": \"one operation timeout during Zookeeper transactions\",\n \"type\": \"integer\"\n },\n \"root\": {\n \"description\": \"optional root znode path inside zookeeper to store ClickHouse related data (replication queue or distributed DDL)\",\n \"type\": \"string\"\n },\n \"session_timeout_ms\": {\n \"description\": \"session timeout during connect to Zookeeper\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"defaults\": {\n \"description\": \"define default behavior for whole ClickHouseInstallation, some behavior can be re-define on cluster, shard and replica level\\nMore info: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specdefaults\\n\",\n \"properties\": {\n \"distributedDDL\": {\n \"description\": \"allows change `\\u003cyandex\\u003e\\u003cdistributed_ddl\\u003e\\u003c/distributed_ddl\\u003e\\u003c/yandex\\u003e` settings\\nMore info: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings-distributed_ddl\\n\",\n \"properties\": {\n \"profile\": {\n \"description\": \"Settings from this profile will be used to execute DDL queries\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"replicasUseFQDN\": {\n \"description\": \"define should replicas be specified by FQDN in `\\u003chost\\u003e\\u003c/host\\u003e`.\\nIn case of \\\"no\\\" will use short hostname and clickhouse-server will use kubernetes default suffixes for DNS lookup\\n\\\"yes\\\" by default\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"storageManagement\": {\n \"description\": \"default storage management options\",\n \"properties\": {\n \"provisioner\": {\n \"description\": \"defines `PVC` provisioner - be it StatefulSet or the Operator\",\n \"enum\": [\n \"\",\n \"StatefulSet\",\n \"Operator\"\n ],\n \"type\": \"string\"\n },\n \"reclaimPolicy\": {\n \"description\": \"defines behavior of `PVC` deletion.\\n`Delete` by default, if `Retain` specified then `PVC` will be kept when deleting StatefulSet\\n\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to one or more ClickHouse clusters described in current ClickHouseInstallation (chi) resource\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceDomainPattern\": {\n \"description\": \"Custom domain pattern which will be used for DNS names of `Service` or `Pod`.\\nTypical use scenario - custom cluster domain in Kubernetes cluster\\nExample: %s.svc.my.test\\n\",\n \"type\": \"string\"\n },\n \"reconciling\": {\n \"description\": \"Optional, allows tuning reconciling cycle for ClickhouseInstallation from clickhouse-operator side\",\n \"properties\": {\n \"cleanup\": {\n \"description\": \"Optional, defines behavior for cleanup Kubernetes resources during reconcile cycle\",\n \"properties\": {\n \"reconcileFailedObjects\": {\n \"description\": \"Describes what clickhouse-operator should do with Kubernetes resources which are failed during reconcile.\\nDefault behavior is `Retain`\\\"\\n\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"Behavior policy for failed ConfigMap, `Retain` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"pvc\": {\n \"description\": \"Behavior policy for failed PVC, `Retain` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"service\": {\n \"description\": \"Behavior policy for failed Service, `Retain` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"statefulSet\": {\n \"description\": \"Behavior policy for failed StatefulSet, `Retain` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"unknownObjects\": {\n \"description\": \"Describes what clickhouse-operator should do with found Kubernetes resources which should be managed by clickhouse-operator,\\nbut do not have `ownerReference` to any currently managed `ClickHouseInstallation` resource.\\nDefault behavior is `Delete`\\\"\\n\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"Behavior policy for unknown ConfigMap, `Delete` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"pvc\": {\n \"description\": \"Behavior policy for unknown PVC, `Delete` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"service\": {\n \"description\": \"Behavior policy for unknown Service, `Delete` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"statefulSet\": {\n \"description\": \"Behavior policy for unknown StatefulSet, `Delete` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"configMapPropagationTimeout\": {\n \"description\": \"Timeout in seconds for `clickhouse-operator` to wait for modified `ConfigMap` to propagate into the `Pod`\\nMore details: https://kubernetes.io/docs/concepts/configuration/configmap/#mounted-configmaps-are-updated-automatically\\n\",\n \"maximum\": 3600,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"policy\": {\n \"description\": \"DISCUSSED TO BE DEPRECATED\\nSyntax sugar\\nOverrides all three 'reconcile.host.wait.{exclude, queries, include}' values from the operator's config\\nPossible values:\\n - wait - should wait to exclude host, complete queries and include host back into the cluster\\n - nowait - should NOT wait to exclude host, complete queries and include host back into the cluster\\n\",\n \"enum\": [\n \"\",\n \"wait\",\n \"nowait\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"restart\": {\n \"description\": \"In case 'RollingUpdate' specified, the operator will always restart ClickHouse pods during reconcile.\\nThis options is used in rare cases when force restart is required and is typically removed after the use in order to avoid unneeded restarts.\\n\",\n \"enum\": [\n \"\",\n \"RollingUpdate\"\n ],\n \"type\": \"string\"\n },\n \"stop\": {\n \"description\": \"Allows to stop all ClickHouse clusters defined in a CHI.\\nWorks as the following:\\n - When `stop` is `1` operator sets `Replicas: 0` in each StatefulSet. Thie leads to having all `Pods` and `Service` deleted. All PVCs are kept intact.\\n - When `stop` is `0` operator sets `Replicas: 1` and `Pod`s and `Service`s will created again and all retained PVCs will be attached to `Pod`s.\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"taskID\": {\n \"description\": \"Allows to define custom taskID for CHI update and watch status of this update execution.\\nDisplayed in all .status.taskID* fields.\\nBy default (if not filled) every update of CHI manifest will generate random taskID\\n\",\n \"type\": \"string\"\n },\n \"templates\": {\n \"description\": \"allows define templates which will use for render Kubernetes resources like StatefulSet, ConfigMap, Service, PVC, by default, clickhouse-operator have own templates, but you can override it\",\n \"properties\": {\n \"hostTemplates\": {\n \"description\": \"hostTemplate will use during apply to generate `clickhose-server` config files\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"template name, could use to link inside top-level `chi.spec.defaults.templates.hostTemplate`, cluster-level `chi.spec.configuration.clusters.templates.hostTemplate`, shard-level `chi.spec.configuration.clusters.layout.shards.temlates.hostTemplate`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates.hostTemplate`\",\n \"type\": \"string\"\n },\n \"portDistribution\": {\n \"description\": \"define how will distribute numeric values of named ports in `Pod.spec.containers.ports` and clickhouse-server configs\",\n \"items\": {\n \"properties\": {\n \"type\": {\n \"description\": \"type of distribution, when `Unspecified` (default value) then all listen ports on clickhouse-server configuration in all Pods will have the same value, when `ClusterScopeIndex` then ports will increment to offset from base value depends on shard and replica index inside cluster with combination of `chi.spec.templates.podTemlates.spec.HostNetwork` it allows setup ClickHouse cluster inside Kubernetes and provide access via external network bypass Kubernetes internal network\",\n \"enum\": [\n \"\",\n \"Unspecified\",\n \"ClusterScopeIndex\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"spec\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` where this template will apply during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"httpPort\": {\n \"description\": \"optional, setup `http_port` inside `clickhouse-server` settings for each Pod where current template will apply\\nif specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=http]`\\nMore info: https://clickhouse.tech/docs/en/interfaces/http/\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"httpsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"insecure\": {\n \"description\": \"optional, open insecure ports for cluster, defaults to \\\"yes\\\"\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"interserverHTTPPort\": {\n \"description\": \"optional, setup `interserver_http_port` inside `clickhouse-server` settings for each Pod where current template will apply\\nif specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=interserver]`\\nMore info: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#interserver-http-port\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"by default, hostname will generate, but this allows define custom name for each `clickhuse-server`\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"optional, open secure ports\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in each `Pod` where this template will apply during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"tcpPort\": {\n \"description\": \"optional, setup `tcp_port` inside `clickhouse-server` settings for each Pod where current template will apply\\nif specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=tcp]`\\nMore info: https://clickhouse.tech/docs/en/interfaces/tcp/\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"be careful, this part of CRD allows override template inside template, don't use it if you don't understand what you do\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"podTemplates\": {\n \"description\": \"podTemplate will use during render `Pod` inside `StatefulSet.spec` and allows define rendered `Pod.spec`, pod scheduling distribution and pod zone\\nMore information: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatespodtemplates\\n\",\n \"items\": {\n \"properties\": {\n \"distribution\": {\n \"description\": \"DEPRECATED, shortcut for `chi.spec.templates.podTemplates.spec.affinity.podAntiAffinity`\",\n \"enum\": [\n \"\",\n \"Unspecified\",\n \"OnePerHost\"\n ],\n \"type\": \"string\"\n },\n \"generateName\": {\n \"description\": \"allows define format for generated `Pod` name, look to https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatesservicetemplates for details about aviailable template variables\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"allows pass standard object's metadata from template to Pod\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside top-level `chi.spec.defaults.templates.podTemplate`, cluster-level `chi.spec.configuration.clusters.templates.podTemplate`, shard-level `chi.spec.configuration.clusters.layout.shards.temlates.podTemplate`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates.podTemplate`\",\n \"type\": \"string\"\n },\n \"podDistribution\": {\n \"description\": \"define ClickHouse Pod distribution policy between Kubernetes Nodes inside Shard, Replica, Namespace, CHI, another ClickHouse cluster\",\n \"items\": {\n \"properties\": {\n \"number\": {\n \"description\": \"define, how much ClickHouse Pods could be inside selected scope with selected distribution type\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"scope\": {\n \"description\": \"scope for apply each podDistribution\",\n \"enum\": [\n \"\",\n \"Unspecified\",\n \"Shard\",\n \"Replica\",\n \"Cluster\",\n \"ClickHouseInstallation\",\n \"Namespace\"\n ],\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"use for inter-pod affinity look to `pod.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey`, More info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"you can define multiple affinity policy types\",\n \"enum\": [\n \"\",\n \"Unspecified\",\n \"ClickHouseAntiAffinity\",\n \"ShardAntiAffinity\",\n \"ReplicaAntiAffinity\",\n \"AnotherNamespaceAntiAffinity\",\n \"AnotherClickHouseInstallationAntiAffinity\",\n \"AnotherClusterAntiAffinity\",\n \"MaxNumberPerNode\",\n \"NamespaceAffinity\",\n \"ClickHouseInstallationAffinity\",\n \"ClusterAffinity\",\n \"ShardAffinity\",\n \"ReplicaAffinity\",\n \"PreviousTailAffinity\",\n \"CircularReplication\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"spec\": {\n \"description\": \"allows define whole Pod.spec inside StaefulSet.spec, look to https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates for details\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"zone\": {\n \"description\": \"allows define custom zone name and will separate ClickHouse `Pods` between nodes, shortcut for `chi.spec.templates.podTemplates.spec.affinity.podAntiAffinity`\",\n \"properties\": {\n \"key\": {\n \"description\": \"optional, if defined, allows select kubernetes nodes by label with `name` equal `key`\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"optional, if defined, allows select kubernetes nodes by label with `value` in `values`\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceTemplates\": {\n \"description\": \"allows define template for rendering `Service` which would get endpoint from Pods which scoped chi-wide, cluster-wide, shard-wide, replica-wide level\\n\",\n \"items\": {\n \"properties\": {\n \"generateName\": {\n \"description\": \"allows define format for generated `Service` name, look to https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatesservicetemplates for details about aviailable template variables\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"allows pass standard object's metadata from template to Service\\nCould be use for define specificly for Cloud Provider metadata which impact to behavior of service\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside\\nchi-level `chi.spec.defaults.templates.serviceTemplate`\\ncluster-level `chi.spec.configuration.clusters.templates.clusterServiceTemplate`\\nshard-level `chi.spec.configuration.clusters.layout.shards.temlates.shardServiceTemplate`\\nreplica-level `chi.spec.configuration.clusters.layout.replicas.templates.replicaServiceTemplate` or `chi.spec.configuration.clusters.layout.shards.replicas.replicaServiceTemplate`\\n\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"describe behavior of generated Service\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"allows define template for rendering `PVC` kubernetes resource, which would use inside `Pod` for mount clickhouse `data`, clickhouse `logs` or something else\",\n \"items\": {\n \"properties\": {\n \"metadata\": {\n \"description\": \"allows to pass standard object's metadata from template to PVC\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside\\ntop-level `chi.spec.defaults.templates.dataVolumeClaimTemplate` or `chi.spec.defaults.templates.logVolumeClaimTemplate`,\\ncluster-level `chi.spec.configuration.clusters.templates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.templates.logVolumeClaimTemplate`,\\nshard-level `chi.spec.configuration.clusters.layout.shards.temlates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.layout.shards.temlates.logVolumeClaimTemplate`\\nreplica-level `chi.spec.configuration.clusters.layout.replicas.templates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.layout.replicas.templates.logVolumeClaimTemplate`\\n\",\n \"type\": \"string\"\n },\n \"provisioner\": {\n \"description\": \"defines `PVC` provisioner - be it StatefulSet or the Operator\",\n \"enum\": [\n \"\",\n \"StatefulSet\",\n \"Operator\"\n ],\n \"type\": \"string\"\n },\n \"reclaimPolicy\": {\n \"description\": \"defines behavior of `PVC` deletion.\\n`Delete` by default, if `Retain` specified then `PVC` will be kept when deleting StatefulSet\\n\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"allows define all aspects of `PVC` resource\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"templating\": {\n \"description\": \"Optional, applicable inside ClickHouseInstallationTemplate only.\\nDefines current ClickHouseInstallationTemplate application options to target ClickHouseInstallation(s).\\\"\\n\",\n \"properties\": {\n \"chiSelector\": {\n \"description\": \"Optional, defines selector for ClickHouseInstallation(s) to be templated with ClickhouseInstallationTemplate\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"When defined as `auto` inside ClickhouseInstallationTemplate, this ClickhouseInstallationTemplate\\nwill be auto-added into ClickHouseInstallation, selectable by `chiSelector`.\\nDefault value is `manual`, meaning ClickHouseInstallation should request this ClickhouseInstallationTemplate explicitly.\\n\",\n \"enum\": [\n \"\",\n \"auto\",\n \"manual\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"troubleshoot\": {\n \"description\": \"Allows to troubleshoot Pods during CrashLoopBack state.\\nThis may happen when wrong configuration applied, in this case `clickhouse-server` wouldn't start.\\nCommand within ClickHouse container is modified with `sleep` in order to avoid quick restarts\\nand give time to troubleshoot via CLI.\\nLiveness and Readiness probes are disabled as well.\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"useTemplates\": {\n \"description\": \"list of `ClickHouseInstallationTemplate` (chit) resource names which will merge with current `Chi` manifest during render Kubernetes resources to create related ClickHouse clusters\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"name of `ClickHouseInstallationTemplate` (chit) resource\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Kubernetes namespace where need search `chit` resource, depending on `watchNamespaces` settings in `clichouse-operator`\",\n \"type\": \"string\"\n },\n \"useType\": {\n \"description\": \"optional, current strategy is only merge, and current `chi` settings have more priority than merged template `chit`\",\n \"enum\": [\n \"\",\n \"merge\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Click House Installation\",\n \"type\": \"object\"\n}", + "version": "clickhouse.altinity.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Click House Installation", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/Altinity/clickhouse-operator/master/deploy/helm/clickhouse-operator/crds" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "ClickHouse", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/Altinity/clickhouse-operator/master/deploy/helm/clickhouse-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 0 9 8\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 7h1v1h-1z\" fill=\"#f00\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{opacity:0.8;fill:#FFFFFF;}\n\u0026#x9;.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\u0026#xA;\u0026#x9;h-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "release-0.23.7" + }, + "name": "clickhouse", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg height=\"2222\" viewBox=\"0 0 9 8\" width=\"2500\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"m0 7h1v1h-1z\" fill=\"#f00\"/\u003e\u003cpath d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{opacity:0.8;fill:#FFFFFF;}\n\t.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"/\u003e\n\u003cpath class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\n\th-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"/\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseInstallationTemplate.json b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseInstallationTemplate.json new file mode 100644 index 00000000000..84e3adcda99 --- /dev/null +++ b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseInstallationTemplate.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ClickHouseInstallationTemplate", + "schema": "{\n \"description\": \"define a set of Kubernetes resources (StatefulSet, PVC, Service, ConfigMap) which describe behavior one or more ClickHouse clusters\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of one or more ClickHouse clusters\\nMore info: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md\\n\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"allows configure multiple aspects and behavior for `clickhouse-server` instance and also allows describe multiple `clickhouse-server` clusters inside one `chi` resource\",\n \"properties\": {\n \"clusters\": {\n \"description\": \"describes ClickHouse clusters layout and allows change settings on cluster-level, shard-level and replica-level\\nevery cluster is a set of StatefulSet, one StatefulSet contains only one Pod with `clickhouse-server`\\nall Pods will rendered in \\u003cremote_server\\u003e part of ClickHouse configs, mounted from ConfigMap as `/etc/clickhouse-server/config.d/chop-generated-remote_servers.xml`\\nClusters will use for Distributed table engine, more details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/\\nIf `cluster` contains zookeeper settings (could be inherited from top `chi` level), when you can create *ReplicatedMergeTree tables\\n\",\n \"items\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` on current cluster during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files`\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"insecure\": {\n \"description\": \"optional, open insecure ports for cluster, defaults to \\\"yes\\\"\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"layout\": {\n \"description\": \"describe current cluster layout, how much shards in cluster, how much replica in shard\\nallows override settings on each shard and replica separatelly\\n\",\n \"properties\": {\n \"replicas\": {\n \"description\": \"optional, allows override top-level `chi.spec.configuration` and cluster-level `chi.spec.configuration.clusters` configuration for each replica and each shard relates to selected replica, use it only if you fully understand what you do\",\n \"items\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`, will ignore if `chi.spec.configuration.clusters.layout.shards` presents\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"optional, by default replica name is generated, but you can override it and setup custom name\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`\\noverride top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and will ignore if shard-level `chi.spec.configuration.clusters.layout.shards` present\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"shards\": {\n \"description\": \"optional, list of shards related to current replica, will ignore if `chi.spec.configuration.clusters.layout.shards` presents\",\n \"items\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` only in one shard related to current replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`, will ignore if `chi.spec.configuration.clusters.layout.shards` presents\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"httpPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `http` for selected shard, override `chi.spec.templates.hostTemplates.spec.httpPort`\\nallows connect to `clickhouse-server` via HTTP protocol via kubernetes `Service`\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"httpsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"insecure\": {\n \"description\": \"optional, open insecure ports for cluster, defaults to \\\"yes\\\"\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"interserverHTTPPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `interserver` for selected shard, override `chi.spec.templates.hostTemplates.spec.interserverHTTPPort`\\nallows connect between replicas inside same shard during fetch replicated data parts HTTP protocol\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"optional, by default shard name is generated, but you can override it and setup custom name\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"optional, open secure ports\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in `Pod` only in one shard related to current replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`\\noverride top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and replica-level `chi.spec.configuration.clusters.layout.replicas.settings`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"tcpPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `tcp` for selected shard, override `chi.spec.templates.hostTemplates.spec.tcpPort`\\nallows connect to `clickhouse-server` via TCP Native protocol via kubernetes `Service`\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica\\noverride top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"shardsCount\": {\n \"description\": \"optional, count of shards related to current replica, you can override each shard behavior on low-level `chi.spec.configuration.clusters.layout.replicas.shards`\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica\\noverride top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"replicasCount\": {\n \"description\": \"how much replicas in each shards for current ClickHouse cluster will run in Kubernetes, each replica is a separate `StatefulSet` which contains only one `Pod` with `clickhouse-server` instance, every shard contains 1 replica by default\",\n \"type\": \"integer\"\n },\n \"shards\": {\n \"description\": \"optional, allows override top-level `chi.spec.configuration`, cluster-level `chi.spec.configuration.clusters` settings for each shard separately, use it only if you fully understand what you do\",\n \"items\": {\n \"properties\": {\n \"definitionType\": {\n \"description\": \"DEPRECATED - to be removed soon\",\n \"type\": \"string\"\n },\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` only in one shard during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"internalReplication\": {\n \"description\": \"optional, `true` by default when `chi.spec.configuration.clusters[].layout.ReplicaCount` \\u003e 1 and 0 otherwise\\nallows setup \\u003cinternal_replication\\u003e setting which will use during insert into tables with `Distributed` engine for insert only in one live replica and other replicas will download inserted data during replication,\\nwill apply in \\u003cremote_servers\\u003e inside ConfigMap which will mount in /etc/clickhouse-server/config.d/chop-generated-remote_servers.xml\\nMore details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"optional, by default shard name is generated, but you can override it and setup custom name\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"optional, allows override behavior for selected replicas from cluster-level `chi.spec.configuration.clusters` and shard-level `chi.spec.configuration.clusters.layout.shards`\\n\",\n \"items\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\noverride top-level `chi.spec.configuration.files`, cluster-level `chi.spec.configuration.clusters.files` and shard-level `chi.spec.configuration.clusters.layout.shards.files`\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"httpPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `http` for selected replica, override `chi.spec.templates.hostTemplates.spec.httpPort`\\nallows connect to `clickhouse-server` via HTTP protocol via kubernetes `Service`\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"httpsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"insecure\": {\n \"description\": \"optional, open insecure ports for cluster, defaults to \\\"yes\\\"\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"interserverHTTPPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `interserver` for selected replica, override `chi.spec.templates.hostTemplates.spec.interserverHTTPPort`\\nallows connect between replicas inside same shard during fetch replicated data parts HTTP protocol\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"optional, by default replica name is generated, but you can override it and setup custom name\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"optional, open secure ports\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`\\noverride top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and shard-level `chi.spec.configuration.clusters.layout.shards.settings`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"tcpPort\": {\n \"description\": \"optional, setup `Pod.spec.containers.ports` with name `tcp` for selected replica, override `chi.spec.templates.hostTemplates.spec.tcpPort`\\nallows connect to `clickhouse-server` via TCP Native protocol via kubernetes `Service`\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica\\noverride top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates` and shard-level `chi.spec.configuration.clusters.layout.shards.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"replicasCount\": {\n \"description\": \"optional, how much replicas in selected shard for selected ClickHouse cluster will run in Kubernetes, each replica is a separate `StatefulSet` which contains only one `Pod` with `clickhouse-server` instance,\\nshard contains 1 replica by default\\noverride cluster-level `chi.spec.configuration.clusters.layout.replicasCount`\\n\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in each `Pod` only in one shard during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`\\noverride top-level `chi.spec.configuration.settings` and cluster-level `chi.spec.configuration.clusters.settings`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected shard\\noverride top-level `chi.spec.configuration.templates` and cluster-level `chi.spec.configuration.clusters.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"optional, 1 by default, allows setup shard \\u003cweight\\u003e setting which will use during insert into tables with `Distributed` engine,\\nwill apply in \\u003cremote_servers\\u003e inside ConfigMap which will mount in /etc/clickhouse-server/config.d/chop-generated-remote_servers.xml\\nMore details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/\\n\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"shardsCount\": {\n \"description\": \"how much shards for current ClickHouse cluster will run in Kubernetes, each shard contains shared-nothing part of data and contains set of replicas, cluster contains 1 shard by default\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"DEPRECATED - to be removed soon\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"cluster name, used to identify set of ClickHouse servers and wide used during generate names of related Kubernetes resources\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"schemaPolicy\": {\n \"description\": \"describes how schema is propagated within replicas and shards\\n\",\n \"properties\": {\n \"replica\": {\n \"description\": \"how schema is propagated within a replica\",\n \"enum\": [\n \"\",\n \"None\",\n \"All\"\n ],\n \"type\": \"string\"\n },\n \"shard\": {\n \"description\": \"how schema is propagated between shards\",\n \"enum\": [\n \"\",\n \"None\",\n \"All\",\n \"DistributedTablesOnly\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"optional, shared secret value to secure cluster communications\",\n \"properties\": {\n \"auto\": {\n \"description\": \"Auto-generate shared secret value to secure cluster communications\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Cluster shared secret value in plain text\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Cluster shared secret source\",\n \"properties\": {\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the clickhouse installation namespace.\\nShould not be used if value is not empty.\\n\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info:\\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\n\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"name\",\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"secure\": {\n \"description\": \"optional, open secure ports for cluster\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in each `Pod` only in one cluster during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`\\noverride top-level `chi.spec.configuration.settings`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to selected cluster\\noverride top-level `chi.spec.configuration.templates`\\n\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"zookeeper\": {\n \"description\": \"optional, allows configure \\u003cyandex\\u003e\\u003czookeeper\\u003e..\\u003c/zookeeper\\u003e\\u003c/yandex\\u003e section in each `Pod` only in current ClickHouse cluster, during generate `ConfigMap` which will mounted in `/etc/clickhouse-server/config.d/`\\noverride top-level `chi.spec.configuration.zookeeper` settings\\n\",\n \"properties\": {\n \"identity\": {\n \"description\": \"optional access credentials string with `user:password` format used when use digest authorization in Zookeeper\",\n \"type\": \"string\"\n },\n \"nodes\": {\n \"description\": \"describe every available zookeeper cluster node for interaction\",\n \"items\": {\n \"properties\": {\n \"host\": {\n \"description\": \"dns name or ip address for Zookeeper node\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"TCP port which used to connect to Zookeeper node\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"secure\": {\n \"description\": \"if a secure connection to Zookeeper is required\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"operation_timeout_ms\": {\n \"description\": \"one operation timeout during Zookeeper transactions\",\n \"type\": \"integer\"\n },\n \"root\": {\n \"description\": \"optional root znode path inside zookeeper to store ClickHouse related data (replication queue or distributed DDL)\",\n \"type\": \"string\"\n },\n \"session_timeout_ms\": {\n \"description\": \"session timeout during connect to Zookeeper\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"files\": {\n \"description\": \"allows define content of any setting file inside each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\nevery key in this object is the file name\\nevery value in this object is the file content\\nyou can use `!!binary |` and base64 for binary files, see details here https://yaml.org/type/binary.html\\neach key could contains prefix like USERS, COMMON, HOST or config.d, users.d, cond.d, wrong prefixes will ignored, subfolders also will ignored\\nMore details: https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/05-settings-05-files-nested.yaml\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"profiles\": {\n \"description\": \"allows configure \\u003cyandex\\u003e\\u003cprofiles\\u003e..\\u003c/profiles\\u003e\\u003c/yandex\\u003e section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`\\nyou can configure any aspect of settings profile\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings-profiles/\\nYour yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationprofiles\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"quotas\": {\n \"description\": \"allows configure \\u003cyandex\\u003e\\u003cquotas\\u003e..\\u003c/quotas\\u003e\\u003c/yandex\\u003e section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`\\nyou can configure any aspect of resource quotas\\nMore details: https://clickhouse.tech/docs/en/operations/quotas/\\nYour yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationquotas\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\nYour yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationsettings\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"users\": {\n \"description\": \"allows configure \\u003cyandex\\u003e\\u003cusers\\u003e..\\u003c/users\\u003e\\u003c/yandex\\u003e section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`\\nyou can configure password hashed, authorization restrictions, database level security row filters etc.\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings-users/\\nYour yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationusers\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"zookeeper\": {\n \"description\": \"allows configure \\u003cyandex\\u003e\\u003czookeeper\\u003e..\\u003c/zookeeper\\u003e\\u003c/yandex\\u003e section in each `Pod` during generate `ConfigMap` which will mounted in `/etc/clickhouse-server/config.d/`\\n`clickhouse-operator` itself doesn't manage Zookeeper, please install Zookeeper separatelly look examples on https://github.com/Altinity/clickhouse-operator/tree/master/deploy/zookeeper/\\ncurrently, zookeeper (or clickhouse-keeper replacement) used for *ReplicatedMergeTree table engines and for `distributed_ddl`\\nMore details: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings_zookeeper\\n\",\n \"properties\": {\n \"identity\": {\n \"description\": \"optional access credentials string with `user:password` format used when use digest authorization in Zookeeper\",\n \"type\": \"string\"\n },\n \"nodes\": {\n \"description\": \"describe every available zookeeper cluster node for interaction\",\n \"items\": {\n \"properties\": {\n \"host\": {\n \"description\": \"dns name or ip address for Zookeeper node\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"TCP port which used to connect to Zookeeper node\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"secure\": {\n \"description\": \"if a secure connection to Zookeeper is required\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"operation_timeout_ms\": {\n \"description\": \"one operation timeout during Zookeeper transactions\",\n \"type\": \"integer\"\n },\n \"root\": {\n \"description\": \"optional root znode path inside zookeeper to store ClickHouse related data (replication queue or distributed DDL)\",\n \"type\": \"string\"\n },\n \"session_timeout_ms\": {\n \"description\": \"session timeout during connect to Zookeeper\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"defaults\": {\n \"description\": \"define default behavior for whole ClickHouseInstallation, some behavior can be re-define on cluster, shard and replica level\\nMore info: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specdefaults\\n\",\n \"properties\": {\n \"distributedDDL\": {\n \"description\": \"allows change `\\u003cyandex\\u003e\\u003cdistributed_ddl\\u003e\\u003c/distributed_ddl\\u003e\\u003c/yandex\\u003e` settings\\nMore info: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings-distributed_ddl\\n\",\n \"properties\": {\n \"profile\": {\n \"description\": \"Settings from this profile will be used to execute DDL queries\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"replicasUseFQDN\": {\n \"description\": \"define should replicas be specified by FQDN in `\\u003chost\\u003e\\u003c/host\\u003e`.\\nIn case of \\\"no\\\" will use short hostname and clickhouse-server will use kubernetes default suffixes for DNS lookup\\n\\\"yes\\\" by default\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"storageManagement\": {\n \"description\": \"default storage management options\",\n \"properties\": {\n \"provisioner\": {\n \"description\": \"defines `PVC` provisioner - be it StatefulSet or the Operator\",\n \"enum\": [\n \"\",\n \"StatefulSet\",\n \"Operator\"\n ],\n \"type\": \"string\"\n },\n \"reclaimPolicy\": {\n \"description\": \"defines behavior of `PVC` deletion.\\n`Delete` by default, if `Retain` specified then `PVC` will be kept when deleting StatefulSet\\n\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"templates\": {\n \"description\": \"optional, configuration of the templates names which will use for generate Kubernetes resources according to one or more ClickHouse clusters described in current ClickHouseInstallation (chi) resource\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceDomainPattern\": {\n \"description\": \"Custom domain pattern which will be used for DNS names of `Service` or `Pod`.\\nTypical use scenario - custom cluster domain in Kubernetes cluster\\nExample: %s.svc.my.test\\n\",\n \"type\": \"string\"\n },\n \"reconciling\": {\n \"description\": \"Optional, allows tuning reconciling cycle for ClickhouseInstallation from clickhouse-operator side\",\n \"properties\": {\n \"cleanup\": {\n \"description\": \"Optional, defines behavior for cleanup Kubernetes resources during reconcile cycle\",\n \"properties\": {\n \"reconcileFailedObjects\": {\n \"description\": \"Describes what clickhouse-operator should do with Kubernetes resources which are failed during reconcile.\\nDefault behavior is `Retain`\\\"\\n\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"Behavior policy for failed ConfigMap, `Retain` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"pvc\": {\n \"description\": \"Behavior policy for failed PVC, `Retain` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"service\": {\n \"description\": \"Behavior policy for failed Service, `Retain` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"statefulSet\": {\n \"description\": \"Behavior policy for failed StatefulSet, `Retain` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"unknownObjects\": {\n \"description\": \"Describes what clickhouse-operator should do with found Kubernetes resources which should be managed by clickhouse-operator,\\nbut do not have `ownerReference` to any currently managed `ClickHouseInstallation` resource.\\nDefault behavior is `Delete`\\\"\\n\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"Behavior policy for unknown ConfigMap, `Delete` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"pvc\": {\n \"description\": \"Behavior policy for unknown PVC, `Delete` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"service\": {\n \"description\": \"Behavior policy for unknown Service, `Delete` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"statefulSet\": {\n \"description\": \"Behavior policy for unknown StatefulSet, `Delete` by default\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"configMapPropagationTimeout\": {\n \"description\": \"Timeout in seconds for `clickhouse-operator` to wait for modified `ConfigMap` to propagate into the `Pod`\\nMore details: https://kubernetes.io/docs/concepts/configuration/configmap/#mounted-configmaps-are-updated-automatically\\n\",\n \"maximum\": 3600,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"policy\": {\n \"description\": \"DISCUSSED TO BE DEPRECATED\\nSyntax sugar\\nOverrides all three 'reconcile.host.wait.{exclude, queries, include}' values from the operator's config\\nPossible values:\\n - wait - should wait to exclude host, complete queries and include host back into the cluster\\n - nowait - should NOT wait to exclude host, complete queries and include host back into the cluster\\n\",\n \"enum\": [\n \"\",\n \"wait\",\n \"nowait\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"restart\": {\n \"description\": \"In case 'RollingUpdate' specified, the operator will always restart ClickHouse pods during reconcile.\\nThis options is used in rare cases when force restart is required and is typically removed after the use in order to avoid unneeded restarts.\\n\",\n \"enum\": [\n \"\",\n \"RollingUpdate\"\n ],\n \"type\": \"string\"\n },\n \"stop\": {\n \"description\": \"Allows to stop all ClickHouse clusters defined in a CHI.\\nWorks as the following:\\n - When `stop` is `1` operator sets `Replicas: 0` in each StatefulSet. Thie leads to having all `Pods` and `Service` deleted. All PVCs are kept intact.\\n - When `stop` is `0` operator sets `Replicas: 1` and `Pod`s and `Service`s will created again and all retained PVCs will be attached to `Pod`s.\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"taskID\": {\n \"description\": \"Allows to define custom taskID for CHI update and watch status of this update execution.\\nDisplayed in all .status.taskID* fields.\\nBy default (if not filled) every update of CHI manifest will generate random taskID\\n\",\n \"type\": \"string\"\n },\n \"templates\": {\n \"description\": \"allows define templates which will use for render Kubernetes resources like StatefulSet, ConfigMap, Service, PVC, by default, clickhouse-operator have own templates, but you can override it\",\n \"properties\": {\n \"hostTemplates\": {\n \"description\": \"hostTemplate will use during apply to generate `clickhose-server` config files\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"template name, could use to link inside top-level `chi.spec.defaults.templates.hostTemplate`, cluster-level `chi.spec.configuration.clusters.templates.hostTemplate`, shard-level `chi.spec.configuration.clusters.layout.shards.temlates.hostTemplate`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates.hostTemplate`\",\n \"type\": \"string\"\n },\n \"portDistribution\": {\n \"description\": \"define how will distribute numeric values of named ports in `Pod.spec.containers.ports` and clickhouse-server configs\",\n \"items\": {\n \"properties\": {\n \"type\": {\n \"description\": \"type of distribution, when `Unspecified` (default value) then all listen ports on clickhouse-server configuration in all Pods will have the same value, when `ClusterScopeIndex` then ports will increment to offset from base value depends on shard and replica index inside cluster with combination of `chi.spec.templates.podTemlates.spec.HostNetwork` it allows setup ClickHouse cluster inside Kubernetes and provide access via external network bypass Kubernetes internal network\",\n \"enum\": [\n \"\",\n \"Unspecified\",\n \"ClusterScopeIndex\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"spec\": {\n \"properties\": {\n \"files\": {\n \"description\": \"optional, allows define content of any setting file inside each `Pod` where this template will apply during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"httpPort\": {\n \"description\": \"optional, setup `http_port` inside `clickhouse-server` settings for each Pod where current template will apply\\nif specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=http]`\\nMore info: https://clickhouse.tech/docs/en/interfaces/http/\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"httpsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"insecure\": {\n \"description\": \"optional, open insecure ports for cluster, defaults to \\\"yes\\\"\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"interserverHTTPPort\": {\n \"description\": \"optional, setup `interserver_http_port` inside `clickhouse-server` settings for each Pod where current template will apply\\nif specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=interserver]`\\nMore info: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#interserver-http-port\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"by default, hostname will generate, but this allows define custom name for each `clickhuse-server`\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"optional, open secure ports\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"settings\": {\n \"description\": \"optional, allows configure `clickhouse-server` settings inside \\u003cyandex\\u003e...\\u003c/yandex\\u003e tag in each `Pod` where this template will apply during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`\\nMore details: https://clickhouse.tech/docs/en/operations/settings/settings/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"tcpPort\": {\n \"description\": \"optional, setup `tcp_port` inside `clickhouse-server` settings for each Pod where current template will apply\\nif specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=tcp]`\\nMore info: https://clickhouse.tech/docs/en/interfaces/tcp/\\n\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"be careful, this part of CRD allows override template inside template, don't use it if you don't understand what you do\",\n \"properties\": {\n \"clusterServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"dataVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"hostTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`\",\n \"type\": \"string\"\n },\n \"logVolumeClaimTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"replicaServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"serviceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for one `Service` resource which will created by `clickhouse-operator` which cover all clusters in whole `chi` resource\",\n \"type\": \"string\"\n },\n \"shardServiceTemplate\": {\n \"description\": \"optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"DEPRECATED! VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsPort\": {\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"podTemplates\": {\n \"description\": \"podTemplate will use during render `Pod` inside `StatefulSet.spec` and allows define rendered `Pod.spec`, pod scheduling distribution and pod zone\\nMore information: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatespodtemplates\\n\",\n \"items\": {\n \"properties\": {\n \"distribution\": {\n \"description\": \"DEPRECATED, shortcut for `chi.spec.templates.podTemplates.spec.affinity.podAntiAffinity`\",\n \"enum\": [\n \"\",\n \"Unspecified\",\n \"OnePerHost\"\n ],\n \"type\": \"string\"\n },\n \"generateName\": {\n \"description\": \"allows define format for generated `Pod` name, look to https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatesservicetemplates for details about aviailable template variables\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"allows pass standard object's metadata from template to Pod\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside top-level `chi.spec.defaults.templates.podTemplate`, cluster-level `chi.spec.configuration.clusters.templates.podTemplate`, shard-level `chi.spec.configuration.clusters.layout.shards.temlates.podTemplate`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates.podTemplate`\",\n \"type\": \"string\"\n },\n \"podDistribution\": {\n \"description\": \"define ClickHouse Pod distribution policy between Kubernetes Nodes inside Shard, Replica, Namespace, CHI, another ClickHouse cluster\",\n \"items\": {\n \"properties\": {\n \"number\": {\n \"description\": \"define, how much ClickHouse Pods could be inside selected scope with selected distribution type\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"scope\": {\n \"description\": \"scope for apply each podDistribution\",\n \"enum\": [\n \"\",\n \"Unspecified\",\n \"Shard\",\n \"Replica\",\n \"Cluster\",\n \"ClickHouseInstallation\",\n \"Namespace\"\n ],\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"use for inter-pod affinity look to `pod.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey`, More info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"you can define multiple affinity policy types\",\n \"enum\": [\n \"\",\n \"Unspecified\",\n \"ClickHouseAntiAffinity\",\n \"ShardAntiAffinity\",\n \"ReplicaAntiAffinity\",\n \"AnotherNamespaceAntiAffinity\",\n \"AnotherClickHouseInstallationAntiAffinity\",\n \"AnotherClusterAntiAffinity\",\n \"MaxNumberPerNode\",\n \"NamespaceAffinity\",\n \"ClickHouseInstallationAffinity\",\n \"ClusterAffinity\",\n \"ShardAffinity\",\n \"ReplicaAffinity\",\n \"PreviousTailAffinity\",\n \"CircularReplication\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"spec\": {\n \"description\": \"allows define whole Pod.spec inside StaefulSet.spec, look to https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates for details\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"zone\": {\n \"description\": \"allows define custom zone name and will separate ClickHouse `Pods` between nodes, shortcut for `chi.spec.templates.podTemplates.spec.affinity.podAntiAffinity`\",\n \"properties\": {\n \"key\": {\n \"description\": \"optional, if defined, allows select kubernetes nodes by label with `name` equal `key`\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"optional, if defined, allows select kubernetes nodes by label with `value` in `values`\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceTemplates\": {\n \"description\": \"allows define template for rendering `Service` which would get endpoint from Pods which scoped chi-wide, cluster-wide, shard-wide, replica-wide level\\n\",\n \"items\": {\n \"properties\": {\n \"generateName\": {\n \"description\": \"allows define format for generated `Service` name, look to https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatesservicetemplates for details about aviailable template variables\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"allows pass standard object's metadata from template to Service\\nCould be use for define specificly for Cloud Provider metadata which impact to behavior of service\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside\\nchi-level `chi.spec.defaults.templates.serviceTemplate`\\ncluster-level `chi.spec.configuration.clusters.templates.clusterServiceTemplate`\\nshard-level `chi.spec.configuration.clusters.layout.shards.temlates.shardServiceTemplate`\\nreplica-level `chi.spec.configuration.clusters.layout.replicas.templates.replicaServiceTemplate` or `chi.spec.configuration.clusters.layout.shards.replicas.replicaServiceTemplate`\\n\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"describe behavior of generated Service\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"allows define template for rendering `PVC` kubernetes resource, which would use inside `Pod` for mount clickhouse `data`, clickhouse `logs` or something else\",\n \"items\": {\n \"properties\": {\n \"metadata\": {\n \"description\": \"allows to pass standard object's metadata from template to PVC\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside\\ntop-level `chi.spec.defaults.templates.dataVolumeClaimTemplate` or `chi.spec.defaults.templates.logVolumeClaimTemplate`,\\ncluster-level `chi.spec.configuration.clusters.templates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.templates.logVolumeClaimTemplate`,\\nshard-level `chi.spec.configuration.clusters.layout.shards.temlates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.layout.shards.temlates.logVolumeClaimTemplate`\\nreplica-level `chi.spec.configuration.clusters.layout.replicas.templates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.layout.replicas.templates.logVolumeClaimTemplate`\\n\",\n \"type\": \"string\"\n },\n \"provisioner\": {\n \"description\": \"defines `PVC` provisioner - be it StatefulSet or the Operator\",\n \"enum\": [\n \"\",\n \"StatefulSet\",\n \"Operator\"\n ],\n \"type\": \"string\"\n },\n \"reclaimPolicy\": {\n \"description\": \"defines behavior of `PVC` deletion.\\n`Delete` by default, if `Retain` specified then `PVC` will be kept when deleting StatefulSet\\n\",\n \"enum\": [\n \"\",\n \"Retain\",\n \"Delete\"\n ],\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"allows define all aspects of `PVC` resource\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"templating\": {\n \"description\": \"Optional, applicable inside ClickHouseInstallationTemplate only.\\nDefines current ClickHouseInstallationTemplate application options to target ClickHouseInstallation(s).\\\"\\n\",\n \"properties\": {\n \"chiSelector\": {\n \"description\": \"Optional, defines selector for ClickHouseInstallation(s) to be templated with ClickhouseInstallationTemplate\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"When defined as `auto` inside ClickhouseInstallationTemplate, this ClickhouseInstallationTemplate\\nwill be auto-added into ClickHouseInstallation, selectable by `chiSelector`.\\nDefault value is `manual`, meaning ClickHouseInstallation should request this ClickhouseInstallationTemplate explicitly.\\n\",\n \"enum\": [\n \"\",\n \"auto\",\n \"manual\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"troubleshoot\": {\n \"description\": \"Allows to troubleshoot Pods during CrashLoopBack state.\\nThis may happen when wrong configuration applied, in this case `clickhouse-server` wouldn't start.\\nCommand within ClickHouse container is modified with `sleep` in order to avoid quick restarts\\nand give time to troubleshoot via CLI.\\nLiveness and Readiness probes are disabled as well.\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"useTemplates\": {\n \"description\": \"list of `ClickHouseInstallationTemplate` (chit) resource names which will merge with current `Chi` manifest during render Kubernetes resources to create related ClickHouse clusters\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"name of `ClickHouseInstallationTemplate` (chit) resource\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Kubernetes namespace where need search `chit` resource, depending on `watchNamespaces` settings in `clichouse-operator`\",\n \"type\": \"string\"\n },\n \"useType\": {\n \"description\": \"optional, current strategy is only merge, and current `chi` settings have more priority than merged template `chit`\",\n \"enum\": [\n \"\",\n \"merge\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Click House Installation Template\",\n \"type\": \"object\"\n}", + "version": "clickhouse.altinity.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Click House Installation Template", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/Altinity/clickhouse-operator/master/deploy/helm/clickhouse-operator/crds" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "ClickHouse", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/Altinity/clickhouse-operator/master/deploy/helm/clickhouse-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 0 9 8\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 7h1v1h-1z\" fill=\"#f00\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{opacity:0.8;fill:#FFFFFF;}\n\u0026#x9;.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\u0026#xA;\u0026#x9;h-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "release-0.23.7" + }, + "name": "clickhouse", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg height=\"2222\" viewBox=\"0 0 9 8\" width=\"2500\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"m0 7h1v1h-1z\" fill=\"#f00\"/\u003e\u003cpath d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{opacity:0.8;fill:#FFFFFF;}\n\t.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"/\u003e\n\u003cpath class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\n\th-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"/\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseKeeperInstallation.json b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseKeeperInstallation.json new file mode 100644 index 00000000000..1500e356cf5 --- /dev/null +++ b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseKeeperInstallation.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ClickHouseKeeperInstallation", + "schema": "{\n \"description\": \"define a set of Kubernetes resources (StatefulSet, PVC, Service, ConfigMap) which describe behavior one ClickHouse Keeper cluster\",\n \"properties\": {\n \"spec\": {\n \"description\": \"KeeperSpec defines the desired state of a Keeper cluster\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"allows configure multiple aspects and behavior for `clickhouse-server` instance and also allows describe multiple `clickhouse-server` clusters inside one `chi` resource\",\n \"properties\": {\n \"clusters\": {\n \"description\": \"describes ClickHouseKeeper clusters layout and allows change settings on cluster-level and replica-level\\n\",\n \"items\": {\n \"properties\": {\n \"layout\": {\n \"description\": \"describe current cluster layout, how many replicas\\n\",\n \"properties\": {\n \"replicasCount\": {\n \"description\": \"how many replicas in ClickHouseKeeper cluster\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"cluster name, used to identify set of ClickHouseKeeper servers and wide used during generate names of related Kubernetes resources\",\n \"maxLength\": 15,\n \"minLength\": 1,\n \"pattern\": \"^[a-zA-Z0-9-]{0,15}$\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"settings\": {\n \"description\": \"allows configure multiple aspects and behavior for `clickhouse-keeper` instance\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceDomainPattern\": {\n \"description\": \"Custom domain pattern which will be used for DNS names of `Service` or `Pod`.\\nTypical use scenario - custom cluster domain in Kubernetes cluster\\nExample: %s.svc.my.test\\n\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Replicas is the expected size of the keeper cluster.\\nThe valid range of size is from 1 to 7.\\n\",\n \"format\": \"int32\",\n \"maximum\": 7,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"templates\": {\n \"description\": \"allows define templates which will use for render Kubernetes resources like StatefulSet, ConfigMap, Service, PVC, by default, clickhouse-operator have own templates, but you can override it\",\n \"properties\": {\n \"podTemplates\": {\n \"description\": \"podTemplate will use during render `Pod` inside `StatefulSet.spec` and allows define rendered `Pod.spec`, pod scheduling distribution and pod zone\\nMore information: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatespodtemplates\\n\",\n \"items\": {\n \"properties\": {\n \"metadata\": {\n \"description\": \"allows pass standard object's metadata from template to Pod\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside top-level `chi.spec.defaults.templates.podTemplate`, cluster-level `chi.spec.configuration.clusters.templates.podTemplate`, shard-level `chi.spec.configuration.clusters.layout.shards.temlates.podTemplate`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates.podTemplate`\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"allows define whole Pod.spec inside StaefulSet.spec, look to https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates for details\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceTemplates\": {\n \"description\": \"allows define template for rendering `Service` which would get endpoint from Pods which scoped chi-wide, cluster-wide, shard-wide, replica-wide level\\n\",\n \"items\": {\n \"properties\": {\n \"metadata\": {\n \"description\": \"allows pass standard object's metadata from template to Service\\nCould be use for define specificly for Cloud Provider metadata which impact to behavior of service\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside\\nchi-level `chi.spec.defaults.templates.serviceTemplate`\\ncluster-level `chi.spec.configuration.clusters.templates.clusterServiceTemplate`\\nshard-level `chi.spec.configuration.clusters.layout.shards.temlates.shardServiceTemplate`\\nreplica-level `chi.spec.configuration.clusters.layout.replicas.templates.replicaServiceTemplate` or `chi.spec.configuration.clusters.layout.shards.replicas.replicaServiceTemplate`\\n\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"describe behavior of generated Service\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"allows define template for rendering `PVC` kubernetes resource, which would use inside `Pod` for mount clickhouse `data`, clickhouse `logs` or something else\",\n \"items\": {\n \"properties\": {\n \"metadata\": {\n \"description\": \"allows to pass standard object's metadata from template to PVC\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"template name, could use to link inside\\ntop-level `chi.spec.defaults.templates.dataVolumeClaimTemplate` or `chi.spec.defaults.templates.logVolumeClaimTemplate`,\\ncluster-level `chi.spec.configuration.clusters.templates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.templates.logVolumeClaimTemplate`,\\nshard-level `chi.spec.configuration.clusters.layout.shards.temlates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.layout.shards.temlates.logVolumeClaimTemplate`\\nreplica-level `chi.spec.configuration.clusters.layout.replicas.templates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.layout.replicas.templates.logVolumeClaimTemplate`\\n\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"allows define all aspects of `PVC` resource\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims\\n\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Click House Keeper Installation\",\n \"type\": \"object\"\n}", + "version": "clickhouse-keeper.altinity.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Click House Keeper Installation", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/Altinity/clickhouse-operator/master/deploy/helm/clickhouse-operator/crds" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "ClickHouse", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/Altinity/clickhouse-operator/master/deploy/helm/clickhouse-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 0 9 8\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 7h1v1h-1z\" fill=\"#f00\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{opacity:0.8;fill:#FFFFFF;}\n\u0026#x9;.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\u0026#xA;\u0026#x9;h-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "release-0.23.7" + }, + "name": "clickhouse", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg height=\"2222\" viewBox=\"0 0 9 8\" width=\"2500\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"m0 7h1v1h-1z\" fill=\"#f00\"/\u003e\u003cpath d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{opacity:0.8;fill:#FFFFFF;}\n\t.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"/\u003e\n\u003cpath class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\n\th-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"/\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseOperatorConfiguration.json b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseOperatorConfiguration.json new file mode 100644 index 00000000000..fe46bc7f816 --- /dev/null +++ b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/components/ClickHouseOperatorConfiguration.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ClickHouseOperatorConfiguration", + "schema": "{\n \"description\": \"allows customize `clickhouse-operator` settings, need restart clickhouse-operator pod after adding, more details https://github.com/Altinity/clickhouse-operator/blob/master/docs/operator_configuration.md\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Allows to define settings of the clickhouse-operator.\\nMore info: https://github.com/Altinity/clickhouse-operator/blob/master/config/config.yaml\\nCheck into etc-clickhouse-operator* ConfigMaps if you need more control\\n\",\n \"format\": \"textarea\",\n \"properties\": {\n \"annotation\": {\n \"description\": \"defines which metadata.annotations items will include or exclude during render StatefulSet, Pod, PVC resources\",\n \"properties\": {\n \"exclude\": {\n \"description\": \"When propagating labels from the chi's `metadata.annotations` section to child objects' `metadata.annotations`,\\nexclude annotations with names from the following list\\n\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"include\": {\n \"description\": \"When propagating labels from the chi's `metadata.annotations` section to child objects' `metadata.annotations`,\\ninclude annotations with names from the following list\\n\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"clickhouse\": {\n \"description\": \"Clickhouse related parameters used by clickhouse-operator\",\n \"properties\": {\n \"access\": {\n \"description\": \"parameters which use for connect to clickhouse from clickhouse-operator deployment\",\n \"properties\": {\n \"password\": {\n \"description\": \"ClickHouse password to be used by operator to connect to ClickHouse instances, deprecated, use chCredentialsSecretName\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port to be used by operator to connect to ClickHouse instances\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"rootCA\": {\n \"description\": \"Root certificate authority that clients use when verifying server certificates. Used for https connection to ClickHouse\",\n \"type\": \"string\"\n },\n \"scheme\": {\n \"description\": \"The scheme to user for connecting to ClickHouse. Possible values: http, https, auto\",\n \"type\": \"string\"\n },\n \"secret\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Name of k8s Secret with username and password to be used by operator to connect to ClickHouse instances\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Location of k8s Secret with username and password to be used by operator to connect to ClickHouse instances\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"timeouts\": {\n \"description\": \"Timeouts used to limit connection and queries from the operator to ClickHouse instances, In seconds\",\n \"properties\": {\n \"connect\": {\n \"description\": \"Timout to setup connection from the operator to ClickHouse instances. In seconds.\",\n \"maximum\": 10,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"query\": {\n \"description\": \"Timout to perform SQL query from the operator to ClickHouse instances. In seconds.\",\n \"maximum\": 600,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"username\": {\n \"description\": \"ClickHouse username to be used by operator to connect to ClickHouse instances, deprecated, use chCredentialsSecretName\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"configuration\": {\n \"properties\": {\n \"file\": {\n \"properties\": {\n \"path\": {\n \"description\": \"Each 'path' can be either absolute or relative.\\nIn case path is absolute - it is used as is.\\nIn case path is relative - it is relative to the folder where configuration file you are reading right now is located.\\n\",\n \"properties\": {\n \"common\": {\n \"description\": \"Path to the folder where ClickHouse configuration files common for all instances within a CHI are located.\\nDefault value - config.d\\n\",\n \"type\": \"string\"\n },\n \"host\": {\n \"description\": \"Path to the folder where ClickHouse configuration files unique for each instance (host) within a CHI are located.\\nDefault value - conf.d\\n\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"Path to the folder where ClickHouse configuration files with users settings are located.\\nFiles are common for all instances within a CHI.\\nDefault value - users.d\\n\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"network\": {\n \"description\": \"Default network parameters for any user which will create\",\n \"properties\": {\n \"hostRegexpTemplate\": {\n \"description\": \"ClickHouse server configuration `\\u003chost_regexp\\u003e...\\u003c/host_regexp\\u003e` for any \\u003cuser\\u003e\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"Default parameters for any user which will create\",\n \"properties\": {\n \"default\": {\n \"properties\": {\n \"networksIP\": {\n \"description\": \"ClickHouse server configuration `\\u003cnetworks\\u003e\\u003cip\\u003e...\\u003c/ip\\u003e\\u003c/networks\\u003e` for any \\u003cuser\\u003e\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"password\": {\n \"description\": \"ClickHouse server configuration `\\u003cpassword\\u003e...\\u003c/password\\u003e` for any \\u003cuser\\u003e\",\n \"type\": \"string\"\n },\n \"profile\": {\n \"description\": \"ClickHouse server configuration `\\u003cprofile\\u003e...\\u003c/profile\\u003e` for any \\u003cuser\\u003e\",\n \"type\": \"string\"\n },\n \"quota\": {\n \"description\": \"ClickHouse server configuration `\\u003cquota\\u003e...\\u003c/quota\\u003e` for any \\u003cuser\\u003e\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"configurationRestartPolicy\": {\n \"description\": \"Configuration restart policy describes what configuration changes require ClickHouse restart\",\n \"properties\": {\n \"rules\": {\n \"description\": \"Array of set of rules per specified ClickHouse versions\",\n \"items\": {\n \"properties\": {\n \"rules\": {\n \"description\": \"Set of configuration rules for specified ClickHouse version\",\n \"items\": {\n \"description\": \"setting: value pairs for configuration restart policy\",\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"version\": {\n \"description\": \"ClickHouse version expression\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"metrics\": {\n \"description\": \"parameters which use for connect to fetch metrics from clickhouse by clickhouse-operator\",\n \"properties\": {\n \"timeouts\": {\n \"description\": \"Timeouts used to limit connection and queries from the metrics exporter to ClickHouse instances\\nSpecified in seconds.\\n\",\n \"properties\": {\n \"collect\": {\n \"description\": \"Timeout used to limit metrics collection request. In seconds.\\nUpon reaching this timeout metrics collection is aborted and no more metrics are collected in this cycle.\\nAll collected metrics are returned.\\n\",\n \"maximum\": 600,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"label\": {\n \"description\": \"defines which metadata.labels will include or exclude during render StatefulSet, Pod, PVC resources\",\n \"properties\": {\n \"appendScope\": {\n \"description\": \"Whether to append *Scope* labels to StatefulSet and Pod\\n- \\\"LabelShardScopeIndex\\\"\\n- \\\"LabelReplicaScopeIndex\\\"\\n- \\\"LabelCHIScopeIndex\\\"\\n- \\\"LabelCHIScopeCycleSize\\\"\\n- \\\"LabelCHIScopeCycleIndex\\\"\\n- \\\"LabelCHIScopeCycleOffset\\\"\\n- \\\"LabelClusterScopeIndex\\\"\\n- \\\"LabelClusterScopeCycleSize\\\"\\n- \\\"LabelClusterScopeCycleIndex\\\"\\n- \\\"LabelClusterScopeCycleOffset\\\"\\n\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"exclude\": {\n \"description\": \"When propagating labels from the chi's `metadata.labels` section to child objects' `metadata.labels`,\\nexclude labels from the following list\\n\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"include\": {\n \"description\": \"When propagating labels from the chi's `metadata.labels` section to child objects' `metadata.labels`,\\ninclude labels from the following list\\n\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"logger\": {\n \"description\": \"allow setup clickhouse-operator logger behavior\",\n \"properties\": {\n \"alsologtostderr\": {\n \"description\": \"boolean allows logs to stderr and files both\",\n \"type\": \"string\"\n },\n \"log_backtrace_at\": {\n \"description\": \"It can be set to a file and line number with a logging line.\\nEx.: file.go:123\\nEach time when this line is being executed, a stack trace will be written to the Info log.\\n\",\n \"type\": \"string\"\n },\n \"logtostderr\": {\n \"description\": \"boolean, allows logs to stderr\",\n \"type\": \"string\"\n },\n \"stderrthreshold\": {\n \"type\": \"string\"\n },\n \"v\": {\n \"description\": \"verbosity level of clickhouse-operator log, default - 1 max - 9\",\n \"type\": \"string\"\n },\n \"vmodule\": {\n \"description\": \"Comma-separated list of filename=N, where filename (can be a pattern) must have no .go ext, and N is a V level.\\nEx.: file*=2 sets the 'V' to 2 in all files with names like file*.\\n\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"define pod specific parameters\",\n \"properties\": {\n \"terminationGracePeriod\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. \\nLook details in `pod.spec.terminationGracePeriodSeconds`\\n\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"reconcile\": {\n \"description\": \"allow tuning reconciling process\",\n \"properties\": {\n \"host\": {\n \"description\": \"Whether the operator during reconcile procedure should wait for a ClickHouse host:\\n - to be excluded from a ClickHouse cluster\\n - to complete all running queries\\n - to be included into a ClickHouse cluster\\nrespectfully before moving forward\\n\",\n \"properties\": {\n \"wait\": {\n \"properties\": {\n \"exclude\": {\n \"description\": \"Whether the operator during reconcile procedure should wait for a ClickHouse host to be excluded from a ClickHouse cluster\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"include\": {\n \"description\": \"Whether the operator during reconcile procedure should wait for a ClickHouse host to be included into a ClickHouse cluster\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n },\n \"queries\": {\n \"description\": \"Whether the operator during reconcile procedure should wait for a ClickHouse host to complete all running queries\",\n \"enum\": [\n \"\",\n \"0\",\n \"1\",\n \"False\",\n \"false\",\n \"True\",\n \"true\",\n \"No\",\n \"no\",\n \"Yes\",\n \"yes\",\n \"Off\",\n \"off\",\n \"On\",\n \"on\",\n \"Disable\",\n \"disable\",\n \"Enable\",\n \"enable\",\n \"Disabled\",\n \"disabled\",\n \"Enabled\",\n \"enabled\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtime\": {\n \"description\": \"runtime parameters for clickhouse-operator process which are used during reconcile cycle\",\n \"properties\": {\n \"reconcileCHIsThreadsNumber\": {\n \"description\": \"How many goroutines will be used to reconcile CHIs in parallel, 10 by default\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"reconcileShardsMaxConcurrencyPercent\": {\n \"description\": \"The maximum percentage of cluster shards that may be reconciled in parallel, 50 percent by default.\",\n \"maximum\": 100,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"reconcileShardsThreadsNumber\": {\n \"description\": \"How many goroutines will be used to reconcile shards of a cluster in parallel, 1 by default\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"statefulSet\": {\n \"description\": \"Allow change default behavior for reconciling StatefulSet which generated by clickhouse-operator\",\n \"properties\": {\n \"create\": {\n \"description\": \"Behavior during create StatefulSet\",\n \"properties\": {\n \"onFailure\": {\n \"description\": \"What to do in case created StatefulSet is not in Ready after `statefulSetUpdateTimeout` seconds\\nPossible options:\\n1. abort - do nothing, just break the process and wait for admin.\\n2. delete - delete newly created problematic StatefulSet.\\n3. ignore (default) - ignore error, pretend nothing happened and move on to the next StatefulSet.\\n\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"update\": {\n \"description\": \"Behavior during update StatefulSet\",\n \"properties\": {\n \"onFailure\": {\n \"description\": \"What to do in case updated StatefulSet is not in Ready after `statefulSetUpdateTimeout` seconds\\nPossible options:\\n1. abort - do nothing, just break the process and wait for admin.\\n2. rollback (default) - delete Pod and rollback StatefulSet to previous Generation. Pod would be recreated by StatefulSet based on rollback-ed configuration.\\n3. ignore - ignore error, pretend nothing happened and move on to the next StatefulSet.\\n\",\n \"type\": \"string\"\n },\n \"pollInterval\": {\n \"description\": \"How many seconds to wait between checks for created/updated StatefulSet status\",\n \"type\": \"integer\"\n },\n \"timeout\": {\n \"description\": \"How many seconds to wait for created/updated StatefulSet to be Ready\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"statefulSet\": {\n \"description\": \"define StatefulSet-specific parameters\",\n \"properties\": {\n \"revisionHistoryLimit\": {\n \"description\": \"revisionHistoryLimit is the maximum number of revisions that will be\\nmaintained in the StatefulSet's revision history. \\nLook details in `statefulset.spec.revisionHistoryLimit`\\n\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Parameters which are used if you want to generate ClickHouseInstallationTemplate custom resources from files which are stored inside clickhouse-operator deployment\",\n \"properties\": {\n \"chi\": {\n \"properties\": {\n \"path\": {\n \"description\": \"Path to folder where ClickHouseInstallationTemplate .yaml manifests are located.\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"CHI template updates handling policy\\nPossible policy values:\\n - ReadOnStart. Accept CHIT updates on the operators start only.\\n - ApplyOnNextReconcile. Accept CHIT updates at all time. Apply news CHITs on next regular reconcile of the CHI\\n\",\n \"enum\": [\n \"\",\n \"ReadOnStart\",\n \"ApplyOnNextReconcile\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"watch\": {\n \"description\": \"Parameters for watch kubernetes resources which used by clickhouse-operator deployment\",\n \"properties\": {\n \"namespaces\": {\n \"description\": \"List of namespaces where clickhouse-operator watches for events.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n }\n },\n \"title\": \"Click House Operator Configuration\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "clickhouse.altinity.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Click House Operator Configuration", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/Altinity/clickhouse-operator/master/deploy/helm/clickhouse-operator/crds" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "ClickHouse", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/Altinity/clickhouse-operator/master/deploy/helm/clickhouse-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 0 9 8\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 7h1v1h-1z\" fill=\"#f00\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{opacity:0.8;fill:#FFFFFF;}\n\u0026#x9;.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\u0026#xA;\u0026#x9;h-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "release-0.23.7" + }, + "name": "clickhouse", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg height=\"2222\" viewBox=\"0 0 9 8\" width=\"2500\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"m0 7h1v1h-1z\" fill=\"#f00\"/\u003e\u003cpath d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{opacity:0.8;fill:#FFFFFF;}\n\t.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"/\u003e\n\u003cpath class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\n\th-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"/\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/model.json b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/model.json new file mode 100644 index 00000000000..b84bda889f9 --- /dev/null +++ b/server/meshmodel/clickhouse/release-0.23.7/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Database" + }, + "displayName": "ClickHouse", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#ffcc00", + "secondaryColor": "#00D3A9", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 0 9 8\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 7h1v1h-1z\" fill=\"#f00\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m0 0h1v7h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 0h1v8h-1zm2 3.25h1v1.5h-1z\" fill=\"#fc0\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 2500 2222\" style=\"enable-background:new 0 0 2500 2222;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{opacity:0.8;fill:#FFFFFF;}\n\u0026#x9;.st1{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M0.1,1944.2h277.8V2222H0.1V1944.2z\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st1\" d=\"M0.1,0h277.8v1944.2H0.1V0z M555.6,0h277.8v2222H555.6V0z M1111.1,0h277.8v2222h-277.8V0z M1666.6,0h277.8v2222\u0026#xA;\u0026#x9;h-277.8V0z M2222.1,902.7h277.8v416.6h-277.8V902.7z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "release-0.23.7" + }, + "name": "clickhouse", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/ClusterImportPolicy.json b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/ClusterImportPolicy.json new file mode 100644 index 00000000000..f37a24e3433 --- /dev/null +++ b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/ClusterImportPolicy.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ClusterImportPolicy", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"creationCondition\": {\n \"type\": \"string\"\n },\n \"nameTemplate\": {\n \"type\": \"string\"\n },\n \"references\": {\n \"items\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"nameTemplate\": {\n \"type\": \"string\"\n },\n \"namespaceTemplate\": {\n \"type\": \"string\"\n },\n \"resource\": {\n \"type\": \"string\"\n },\n \"versions\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"group\",\n \"key\",\n \"nameTemplate\",\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"source\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"resource\": {\n \"type\": \"string\"\n },\n \"selectorTemplate\": {\n \"type\": \"string\"\n },\n \"versions\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"group\",\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"template\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"creationCondition\",\n \"nameTemplate\",\n \"source\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Cluster Import Policy\",\n \"type\": \"object\"\n}", + "version": "policy.clusterpedia.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Cluster Import Policy", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/clusterpedia-io/clusterpedia/main/kustomize/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Clusterpedia", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "source_uri": "git://github.com/clusterpedia-io/clusterpedia/main/kustomize/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.8.1" + }, + "name": "clusterpedia", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "svgColor": "\u003csvg id=\"Graph\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003cg id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"/\u003e\u003cpath id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"/\u003e\u003cpath id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Graph\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003cg id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"/\u003e\u003cpath id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"/\u003e\u003cpath id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/ClusterSyncResources.json b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/ClusterSyncResources.json new file mode 100644 index 00000000000..3db2a6ce82d --- /dev/null +++ b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/ClusterSyncResources.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ClusterSyncResources", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"syncResources\": {\n \"items\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"versions\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"group\",\n \"resources\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"syncResources\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Cluster Sync Resources\",\n \"type\": \"object\"\n}", + "version": "cluster.clusterpedia.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Cluster Sync Resources", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/clusterpedia-io/clusterpedia/main/kustomize/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Clusterpedia", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "source_uri": "git://github.com/clusterpedia-io/clusterpedia/main/kustomize/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.8.1" + }, + "name": "clusterpedia", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "svgColor": "\u003csvg id=\"Graph\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003cg id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"/\u003e\u003cpath id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"/\u003e\u003cpath id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Graph\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003cg id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"/\u003e\u003cpath id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"/\u003e\u003cpath id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/PediaCluster.json b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/PediaCluster.json new file mode 100644 index 00000000000..db3aa91ac68 --- /dev/null +++ b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/PediaCluster.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PediaCluster", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"apiserver\": {\n \"type\": \"string\"\n },\n \"caData\": {\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"certData\": {\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"keyData\": {\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"kubeconfig\": {\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"shardingName\": {\n \"type\": \"string\"\n },\n \"syncAllCustomResources\": {\n \"type\": \"boolean\"\n },\n \"syncResources\": {\n \"items\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"versions\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"group\",\n \"resources\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"syncResourcesRefName\": {\n \"type\": \"string\"\n },\n \"tokenData\": {\n \"format\": \"byte\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"syncResources\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Pedia Cluster\",\n \"type\": \"object\"\n}", + "version": "cluster.clusterpedia.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Pedia Cluster", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/clusterpedia-io/clusterpedia/main/kustomize/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Clusterpedia", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "source_uri": "git://github.com/clusterpedia-io/clusterpedia/main/kustomize/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.8.1" + }, + "name": "clusterpedia", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "svgColor": "\u003csvg id=\"Graph\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003cg id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"/\u003e\u003cpath id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"/\u003e\u003cpath id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Graph\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003cg id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"/\u003e\u003cpath id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"/\u003e\u003cpath id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/PediaClusterLifecycle.json b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/PediaClusterLifecycle.json new file mode 100644 index 00000000000..d7167541609 --- /dev/null +++ b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/components/PediaClusterLifecycle.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PediaClusterLifecycle", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"creationCondition\": {\n \"type\": \"string\"\n },\n \"references\": {\n \"items\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"nameTemplate\": {\n \"type\": \"string\"\n },\n \"namespaceTemplate\": {\n \"type\": \"string\"\n },\n \"resource\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"group\",\n \"key\",\n \"nameTemplate\",\n \"resource\",\n \"version\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"source\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"resource\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"group\",\n \"name\",\n \"resource\",\n \"version\"\n ],\n \"type\": \"object\"\n },\n \"template\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"creationCondition\",\n \"source\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Pedia Cluster Lifecycle\",\n \"type\": \"object\"\n}", + "version": "policy.clusterpedia.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Pedia Cluster Lifecycle", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/clusterpedia-io/clusterpedia/main/kustomize/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Clusterpedia", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "source_uri": "git://github.com/clusterpedia-io/clusterpedia/main/kustomize/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.8.1" + }, + "name": "clusterpedia", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "svgColor": "\u003csvg id=\"Graph\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003cg id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"/\u003e\u003cpath id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"/\u003e\u003cpath id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Graph\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003cg id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"/\u003e\u003cpath id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"/\u003e\u003cpath id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/model.json b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/model.json new file mode 100644 index 00000000000..25def57f7f5 --- /dev/null +++ b/server/meshmodel/clusterpedia/v0.8.1/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Clusterpedia", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#33de72", + "secondaryColor": "#47e180", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Color_Dark\" data-name=\"Cpedia - Graph - Color Dark\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#1b1c1d\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#33de72\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Graph\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Cpedia_-_Graph_-_Light\" data-name=\"Cpedia - Graph - Light\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Frame\" width=\"512\" height=\"512\" fill=\"none\"\u003e\u003c/rect\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Secondary\" d=\"M476,221.051A274.908,274.908,0,0,0,428.269,256,282.438,282.438,0,0,1,395.7,220.752,322.971,322.971,0,0,1,452,179.482ZM362.4,256a334.139,334.139,0,0,0-53.2,92.145A329.953,329.953,0,0,0,295.32,394.6a322.932,322.932,0,0,0-7.587,69.4h48a274.957,274.957,0,0,1,6.4-58.813,282.32,282.32,0,0,1,14.238-45.835,285.94,285.94,0,0,1,39.323-68.1A330.2,330.2,0,0,1,362.4,256ZM169.865,405.189a274.9,274.9,0,0,1,6.4,58.811h48a322.893,322.893,0,0,0-7.589-69.4A282.46,282.46,0,0,0,169.865,405.189ZM179.94,300.03A333.961,333.961,0,0,0,149.6,256a330,330,0,0,0-33.291-35.248A322.915,322.915,0,0,0,60,179.482L36,221.051A274.964,274.964,0,0,1,83.733,256a282.3,282.3,0,0,1,32.576,35.248,286.331,286.331,0,0,1,22.054,32.768,286.3,286.3,0,0,1,17.264,35.339A330.144,330.144,0,0,1,202.8,348.148,334.156,334.156,0,0,0,179.94,300.03ZM169.865,106.811a274.966,274.966,0,0,1-54.132-23.862l-24,41.569a322.934,322.934,0,0,0,63.894,28.127A282.241,282.241,0,0,0,169.865,106.811Zm186.507,45.836a322.994,322.994,0,0,0,63.895-28.129l-24-41.569a275.02,275.02,0,0,1-54.133,23.864A282.293,282.293,0,0,1,295.32,117.4a286.278,286.278,0,0,1-39.307,2.716h-.1a286.366,286.366,0,0,1-39.237-2.718,330.245,330.245,0,0,1-13.88,46.455,334.129,334.129,0,0,0,53.1,4.263h.115a333.931,333.931,0,0,0,53.187-4.261A329.92,329.92,0,0,0,356.372,152.647Z\" fill=\"#fff\" opacity=\"0.66\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Primary\" d=\"M211.993,256l22-38.1h44l22,38.1-22,38.105h-44ZM342.134,106.813A274.957,274.957,0,0,1,335.733,48h-48a322.932,322.932,0,0,0,7.587,69.4A282.293,282.293,0,0,0,342.134,106.813ZM428.269,256A282.438,282.438,0,0,1,395.7,220.752a285.92,285.92,0,0,1-39.323-68.105A329.92,329.92,0,0,1,309.2,163.854,334.125,334.125,0,0,0,362.4,256,330.2,330.2,0,0,0,395.7,291.248,322.971,322.971,0,0,0,452,332.518l24-41.569A274.908,274.908,0,0,1,428.269,256ZM149.6,256a333.961,333.961,0,0,0,30.34-44.03A334.156,334.156,0,0,0,202.8,163.852a330.245,330.245,0,0,0,13.88-46.455A322.893,322.893,0,0,0,224.267,48h-48a274.9,274.9,0,0,1-6.4,58.811,282.241,282.241,0,0,1-14.238,45.834,286.3,286.3,0,0,1-17.264,35.339,286.331,286.331,0,0,1-22.054,32.768A330,330,0,0,1,149.6,256Zm-65.867,0A274.964,274.964,0,0,1,36,290.949l24,41.569a322.915,322.915,0,0,0,56.309-41.27A282.3,282.3,0,0,0,83.733,256ZM255.9,343.885a334.129,334.129,0,0,0-53.1,4.263,330.144,330.144,0,0,0-47.171,11.207,322.934,322.934,0,0,0-63.894,28.127l24,41.569a274.966,274.966,0,0,1,54.132-23.862A282.46,282.46,0,0,1,216.678,394.6a286.366,286.366,0,0,1,39.237-2.718h.1A286.278,286.278,0,0,1,295.32,394.6a329.953,329.953,0,0,1,13.88-46.456,334.028,334.028,0,0,0-53.187-4.26Zm86.236,61.3a275.027,275.027,0,0,1,54.133,23.864l24-41.569a322.991,322.991,0,0,0-63.895-28.13A282.32,282.32,0,0,0,342.134,405.187Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.8.1" + }, + "name": "clusterpedia", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/confidential containers/v0.9.0/v1.0.0/components/CcRuntime.json b/server/meshmodel/confidential containers/v0.9.0/v1.0.0/components/CcRuntime.json new file mode 100644 index 00000000000..2e4aa748524 --- /dev/null +++ b/server/meshmodel/confidential containers/v0.9.0/v1.0.0/components/CcRuntime.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "CcRuntime", + "schema": "{\n \"description\": \"CcRuntime is the Schema for the ccruntimes API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"CcRuntimeSpec defines the desired state of CcRuntime\",\n \"properties\": {\n \"ccNodeSelector\": {\n \"description\": \"CcNodeSelector is used to select the worker nodes to deploy the runtime if not specified, all worker nodes are selected\",\n \"nullable\": true,\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"config\": {\n \"description\": \"CcInstallConfig is a placeholder struct\",\n \"properties\": {\n \"ImagePullSecret\": {\n \"description\": \"This specifies the registry secret to pull of the container images\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"cleanupCmd\": {\n \"description\": \"This specifies the command for cleanup on the nodes\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"debug\": {\n \"description\": \"This specifies whether the CcRuntime (kata or enclave-cc) will be running on debug mode\",\n \"type\": \"boolean\"\n },\n \"defaultRuntimeClassName\": {\n \"description\": \"This specifies the RuntimeClass to be used as the default one If not set, the default \\\"kata\\\" runtime class will NOT be created. Otherwise, the default \\\"kata\\\" runtime class will be created as as \\\"alias\\\" for the value set here\",\n \"type\": \"string\"\n },\n \"environmentVariables\": {\n \"description\": \"This specifies the environment variables required by the daemon set\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"guestInitrdImage\": {\n \"description\": \"This specifies the location of the container image containing the guest initrd If both bundleImage and guestInitrdImage are specified, then guestInitrdImage content will override the equivalent one in payloadImage\",\n \"type\": \"string\"\n },\n \"guestKernelImage\": {\n \"description\": \"This specifies the location of the container image containing the guest kernel If both bundleImage and guestKernelImage are specified, then guestKernelImage content will override the equivalent one in payloadImage\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"installCmd\": {\n \"description\": \"This specifies the command for installation of the runtime on the nodes\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"installDoneLabel\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"This specifies the label that the install daemonset adds to nodes when the installation is done\",\n \"type\": \"object\"\n },\n \"installType\": {\n \"description\": \"This indicates whether to use native OS packaging (rpm/deb) or Container image Default is bundle (container image)\",\n \"enum\": [\n \"bundle\",\n \"osnative\"\n ],\n \"type\": \"string\"\n },\n \"installerVolumeMounts\": {\n \"description\": \"This specifies volume mounts required for the installer pods\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"installerVolumes\": {\n \"description\": \"This specifies volumes required for the installer pods\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"osNativeRepo\": {\n \"description\": \"This specifies the repo location to be used when using rpm/deb packages Some examples add-apt-repository 'deb [arch=amd64] https://repo.confidential-containers.org/apt/ubuntu’ add-apt-repository ppa:confidential-containers/cc-bundle dnf install -y https://repo.confidential-containers.org/yum/centos/cc-bundle-repo.rpm\",\n \"type\": \"string\"\n },\n \"payloadImage\": {\n \"description\": \"This specifies the location of the container image with all artifacts (Cc runtime binaries, initrd, kernel, config etc) when using \\\"bundle\\\" installType\",\n \"type\": \"string\"\n },\n \"postUninstall\": {\n \"description\": \"This specifies the configuration for the post-uninstall daemonset\",\n \"properties\": {\n \"cmd\": {\n \"description\": \"This specifies the command executes before UnInstallCmd\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"environmentVariables\": {\n \"description\": \"This specifies the env variables for the post-uninstall daemon set\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"This specifies the pull spec for the postuninstall daemonset image\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"This specifies the volumeMounts for the post-uninstall daemon set\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"This specifies the volumes for the post-uninstall daemon set\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"preInstall\": {\n \"description\": \"This specifies the configuration for the pre-install daemonset\",\n \"properties\": {\n \"cmd\": {\n \"description\": \"This specifies the command executes before InstallCmd\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"environmentVariables\": {\n \"description\": \"This specifies the env variables for the pre-install daemon set\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"This specifies the image for the pre-install scripts\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"This specifies the volumeMounts for the pre-install daemon set\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"This specifies the volumes for the pre-install daemon set\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClasses\": {\n \"description\": \"This specifies the RuntimeClasses that need to be created, with its name and an associated snapshotter to be used\",\n \"items\": {\n \"description\": \"RuntimeClass holds the name and basic customizations to be used by a runtime class\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the runtime class\",\n \"type\": \"string\"\n },\n \"pulltype\": {\n \"description\": \"The pulling image method to be used by the runtime class\",\n \"type\": \"string\"\n },\n \"snapshotter\": {\n \"description\": \"The snapshotter to be used by the runtime class\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"pulltype\",\n \"snapshotter\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"runtimeImage\": {\n \"description\": \"This specifies the location of the container image containing the Cc runtime binaries If both payloadImage and runtimeImage are specified, then runtimeImage content will override the equivalent one in payloadImage\",\n \"type\": \"string\"\n },\n \"uninstallCmd\": {\n \"description\": \"This specifies the command for uninstallation of the runtime on the nodes\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"uninstallDoneLabel\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"This specifies the label that the uninstall daemonset adds to nodes when the uninstallation is done\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"installType\",\n \"payloadImage\"\n ],\n \"type\": \"object\"\n },\n \"runtimeName\": {\n \"enum\": [\n \"kata\",\n \"enclave-cc\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"config\",\n \"runtimeName\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Cc Runtime\",\n \"type\": \"object\"\n}", + "version": "confidentialcontainers.org/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Cc Runtime", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/confidential-containers/operator/main/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Confidential Containers", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#b50000", + "secondaryColor": "#bc1a1a", + "shape": "circle", + "source_uri": "git://github.com/confidential-containers/operator/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 106.39133 115.09025\" version=\"1.1\" id=\"svg201550\" xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" inkscape:version=\"1.2-dev (c68a1cf202, 2021-08-16)\" xmlns:sodipodi-0.dtd=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" sodipodi-0.dtd:docname=\"confidential-containers-logo-only.svg\" inkscape:export-filename=\"/home/tigert/Documents/design-temp/confidential-containers/logo/confidential-containers-logo-stacked.png\" inkscape:export-xdpi=\"88.529999\" inkscape:export-ydpi=\"88.529999\" xmlns:_xmlns=\"xmlns\" _xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" _xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" _xmlns:svg=\"http://www.w3.org/2000/svg\"\u003e\n \u003cnamedview xmlns=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" id=\"namedview201552\" pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1.0\" inkscape:pageshadow=\"2\" inkscape:pageopacity=\"0.0\" inkscape:pagecheckerboard=\"0\" inkscape:document-units=\"mm\" showgrid=\"false\" fit-margin-top=\"10\" fit-margin-left=\"10\" fit-margin-right=\"10\" lock-margins=\"true\" fit-margin-bottom=\"10\" inkscape:zoom=\"0.68589358\" inkscape:cx=\"1134.2868\" inkscape:cy=\"325.12332\" inkscape:window-width=\"3840\" inkscape:window-height=\"1136\" inkscape:window-x=\"0\" inkscape:window-y=\"27\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"layer1\"\u003e\u003c/namedview\u003e\n \u003cdefs xmlns=\"http://www.w3.org/2000/svg\" id=\"defs201547\"\u003e\u003c/defs\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" inkscape:label=\"Layer 1\" inkscape:groupmode=\"layer\" id=\"layer1\" transform=\"translate(463.92245,-100.21543)\"\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"g203500\" transform=\"translate(-317.21501,-40.129347)\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"path1439\" style=\"opacity:1;fill:#ffffff;stroke:#005c94;stroke-width:21.8871;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000;stop-opacity:1\" inkscape:transform-center-x=\"-2.0702374e-05\" inkscape:transform-center-y=\"-3.2239512e-06\" transform=\"matrix(0.22489192,0,0,0.22489192,297.191,30.9734)\" d=\"m -1737.2913,942.67731 c -20.0469,0 -163.5883,-82.87365 -173.6118,-100.23483 -10.0235,-17.36118 -10.0235,-183.10848 0,-200.46967 10.0235,-17.36118 153.5649,-100.23483 173.6118,-100.23483 20.047,0 163.5884,82.87364 173.6119,100.23482 10.0234,17.36119 10.0234,183.10849 0,200.46967 -10.0235,17.36118 -153.5649,100.23484 -173.6119,100.23484 z\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"path1441\" style=\"fill:#ff4d4d;fill-opacity:1;stroke-width:2.26361;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000\" d=\"m -93.5108,223.4354 c -0.7664,0 -21.7398,-12.109 -22.1229,-12.7727 -0.3832,-0.6638 -0.3832,-24.8819 0,-25.5456 0.3831,-0.6637 21.3565,-12.7727 22.1229,-12.7727 0.7664,0 21.7398,12.109 22.1231,12.7727 0.3831,0.6637 0.3831,24.8818 0,25.5456 -0.3833,0.6637 -21.3567,12.7727 -22.1231,12.7727 z\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"path1449\" style=\"fill:#b50000;stroke-width:2.26362;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000\" d=\"m -71.3875,185.1171 c -0.7664,0 -21.7402,12.1088 -22.1233,12.7725 -0.3833,0.6637 -0.3833,24.882 0,25.5458 0.7662,0 21.74,-12.1088 22.1233,-12.7726 0.3831,-0.6637 0.3831,-24.8822 0,-25.5457 z\"\u003e\u003c/path\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 106.39133 115.09025\" version=\"1.1\" id=\"svg201550\" xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" inkscape:version=\"1.2-alpha1 (7125ea6, 2022-03-22)\" xmlns:sodipodi-0.dtd=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" sodipodi-0.dtd:docname=\"confidential-containers-icon-white.svg\" inkscape:export-filename=\"/home/tigert/Documents/design-temp/confidential-containers/logo/confidential-containers-icon-white.png\" inkscape:export-xdpi=\"301.07001\" inkscape:export-ydpi=\"301.07001\" xmlns:_xmlns=\"xmlns\" _xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" _xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" _xmlns:svg=\"http://www.w3.org/2000/svg\"\u003e\n \u003cnamedview xmlns=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" id=\"namedview201552\" pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1.0\" inkscape:pageshadow=\"2\" inkscape:pageopacity=\"0.0\" inkscape:pagecheckerboard=\"true\" inkscape:document-units=\"mm\" showgrid=\"false\" fit-margin-top=\"10\" fit-margin-left=\"10\" fit-margin-right=\"10\" lock-margins=\"true\" fit-margin-bottom=\"10\" inkscape:zoom=\"0.68589358\" inkscape:cx=\"246.39391\" inkscape:cy=\"330.95513\" inkscape:window-width=\"1950\" inkscape:window-height=\"1131\" inkscape:window-x=\"26\" inkscape:window-y=\"23\" inkscape:window-maximized=\"0\" inkscape:current-layer=\"layer1\" inkscape:deskcolor=\"#d1d1d1\"\u003e\u003c/namedview\u003e\n \u003cdefs xmlns=\"http://www.w3.org/2000/svg\" id=\"defs201547\"\u003e\u003c/defs\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" inkscape:label=\"Layer 1\" inkscape:groupmode=\"layer\" id=\"layer1\" transform=\"translate(463.92245,-100.21543)\"\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"g203500\" transform=\"translate(-317.21501,-40.129347)\" style=\"fill:#ffffff\"\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"g7413\" style=\"fill:#ffffff\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" style=\"color:#000000;fill:#ffffff;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none\" d=\"m -1737.291,530.79492 c -6.2759,0 -10.4909,1.87436 -16.8008,4.34961 -6.3099,2.47525 -13.7984,5.88144 -22.1836,9.98438 -16.7703,8.20587 -37.0577,19.19417 -57.0527,30.73828 -19.995,11.54411 -39.6548,23.61845 -55.1465,34.03906 -7.7458,5.2103 -14.4397,9.99381 -19.7383,14.2207 -5.2986,4.2269 -9.03,6.93993 -12.168,12.375 -3.1379,5.43509 -3.6215,10.02247 -4.6328,16.72461 -1.0113,6.70215 -1.8059,14.88988 -2.4453,24.20313 -1.2787,18.62648 -1.9062,41.68912 -1.9062,64.77734 0,23.08822 0.6275,46.15281 1.9062,64.7793 0.6394,9.31324 1.434,17.50098 2.4453,24.20312 1.0113,6.70215 1.4949,11.28953 4.6328,16.72461 3.138,5.43508 6.8694,8.14811 12.168,12.375 5.2986,4.22689 11.9925,9.0104 19.7383,14.22071 15.4917,10.42061 35.1515,22.49299 55.1465,34.0371 19.995,11.54412 40.2824,22.53436 57.0527,30.74024 8.3852,4.10294 15.8737,7.50717 22.1836,9.98242 6.3099,2.47525 10.5249,4.35156 16.8008,4.35156 6.2759,0 10.4909,-1.87631 16.8008,-4.35156 6.3099,-2.47525 13.7984,-5.87948 22.1836,-9.98242 16.7703,-8.20588 37.0577,-19.19612 57.0527,-30.74024 19.995,-11.54411 39.6548,-23.61649 55.1465,-34.0371 7.7458,-5.21031 14.4377,-9.99382 19.7363,-14.22071 5.2986,-4.22689 9.032,-6.93992 12.1699,-12.375 3.1379,-5.43507 3.6196,-10.02247 4.6309,-16.72461 1.0113,-6.70214 1.8079,-14.88988 2.4473,-24.20312 1.2786,-18.62648 1.9042,-41.69108 1.9042,-64.7793 0,-23.08822 -0.6256,-46.15086 -1.9042,-64.77734 -0.6394,-9.31324 -1.436,-17.50099 -2.4473,-24.20313 -1.0113,-6.70214 -1.493,-11.28953 -4.6309,-16.72461 -3.1379,-5.43507 -6.8713,-8.1481 -12.1699,-12.375 -5.2986,-4.22689 -11.9905,-9.0104 -19.7363,-14.2207 -15.4917,-10.42061 -35.1515,-22.49495 -55.1465,-34.03906 -19.995,-11.54411 -40.2824,-22.53241 -57.0527,-30.73828 -8.3852,-4.10294 -15.8737,-7.50913 -22.1836,-9.98438 -6.3099,-2.47525 -10.5249,-4.34961 -16.8008,-4.34961 z m 0,21.88672 c -1.2642,0 3.3923,0.71513 8.8086,2.83984 5.4163,2.12472 12.5091,5.32986 20.5566,9.26758 16.0951,7.87546 36.0775,18.68878 55.7266,30.03321 19.6491,11.34442 39.0071,23.24313 53.875,33.24414 7.4339,5.0005 13.7565,9.54163 18.3047,13.16992 4.5482,3.62829 7.4953,7.30377 6.8632,6.20898 -0.632,-1.09478 1.0773,3.29387 1.9454,9.04688 0.868,5.75301 1.6383,13.49731 2.2519,22.43554 1.2272,17.87647 1.8535,40.59045 1.8535,63.2793 0,22.68886 -0.6263,45.40283 -1.8535,63.2793 -0.6136,8.93823 -1.3839,16.68449 -2.2519,22.4375 -0.8681,5.75301 -2.5774,10.14166 -1.9454,9.04687 0.6321,-1.09478 -2.315,2.5807 -6.8632,6.20899 -4.5482,3.62829 -10.8708,8.16746 -18.3047,13.16797 -14.8679,10.00101 -34.2259,21.90166 -53.875,33.24609 -19.6491,11.34443 -39.6315,22.15775 -55.7266,30.0332 -8.0475,3.93773 -15.1403,7.14287 -20.5566,9.26758 -5.4163,2.12471 -10.0728,2.83984 -8.8086,2.83984 1.2642,0 -3.3923,-0.71513 -8.8086,-2.83984 -5.4163,-2.12471 -12.5091,-5.32985 -20.5567,-9.26758 -16.095,-7.87545 -36.0793,-18.68877 -55.7285,-30.0332 -19.6491,-11.34443 -39.0051,-23.24508 -53.873,-33.24609 -7.434,-5.00051 -13.7565,-9.53968 -18.3047,-13.16797 -4.5482,-3.62829 -7.4954,-7.30377 -6.8633,-6.20899 0.6321,1.0948 -1.0772,-3.29387 -1.9453,-9.04687 -0.8681,-5.753 -1.6384,-13.49927 -2.2519,-22.4375 -1.2272,-17.87647 -1.8536,-40.59045 -1.8536,-63.2793 0,-22.68885 0.6264,-45.40283 1.8536,-63.2793 0.6135,-8.93823 1.3838,-16.68254 2.2519,-22.43554 0.8681,-5.75301 2.5774,-10.14167 1.9453,-9.04688 -0.6321,1.09479 2.3151,-2.58069 6.8633,-6.20898 4.5482,-3.62829 10.8707,-8.16942 18.3047,-13.16992 14.8679,-10.00101 34.2239,-21.89972 53.873,-33.24414 19.6492,-11.34443 39.6335,-22.15775 55.7285,-30.03321 8.0476,-3.93773 15.1404,-7.14286 20.5567,-9.26758 5.4163,-2.12471 10.0728,-2.83984 8.8086,-2.83984 z\" id=\"path1439\" transform=\"matrix(0.22489192,0,0,0.22489192,297.191,30.9734)\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"path1441\" style=\"color:#000000;fill:#ffffff;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none\" d=\"M -93.511721 171.21266 C -93.908218 171.21266 -93.927995 171.27771 -94.033136 171.31653 C -94.138277 171.35533 -94.236576 171.39813 -94.349396 171.44934 C -94.575036 171.55173 -94.848554 171.68829 -95.181386 171.85913 C -95.847048 172.20082 -96.73789 172.68018 -97.783294 173.25595 C -99.874104 174.40748 -102.58248 175.94419 -105.28103 177.5022 C -107.97958 179.06021 -110.66635 180.63806 -112.709 181.87299 C -113.73033 182.49045 -114.59019 183.02023 -115.21892 183.42587 C -115.53328 183.62869 -115.78897 183.79893 -115.99045 183.94315 C -116.0912 184.01525 -116.17559 184.08077 -116.26175 184.15244 C -116.34795 184.22414 -116.41489 184.20742 -116.61315 184.55086 C -116.81142 184.89425 -116.76419 184.94426 -116.78317 185.05471 C -116.80217 185.16515 -116.81613 185.27299 -116.82813 185.39629 C -116.85223 185.6429 -116.87216 185.94866 -116.89066 186.32233 C -116.92756 187.06965 -116.95657 188.07828 -116.98057 189.27151 C -117.02877 191.65798 -117.05292 194.77459 -117.05292 197.89062 C -117.05292 201.00666 -117.02877 204.12119 -116.98057 206.50766 C -116.95647 207.70091 -116.92756 208.70951 -116.89066 209.45684 C -116.87216 209.83051 -116.85223 210.13834 -116.82813 210.38495 C -116.81603 210.50825 -116.80217 210.61402 -116.78317 210.72446 C -116.76417 210.8349 -116.81137 210.88497 -116.61315 211.22831 C -116.41489 211.57179 -116.34791 211.55506 -116.26175 211.62673 C -116.17555 211.69843 -116.0912 211.76391 -115.99045 211.83602 C -115.78897 211.98023 -115.53328 212.15048 -115.21892 212.3533 C -114.59019 212.75894 -113.73033 213.28872 -112.709 213.90618 C -110.66635 215.14111 -107.97958 216.71948 -105.28103 218.27749 C -102.58248 219.8355 -99.874104 221.37168 -97.783294 222.52322 C -96.73789 223.09898 -95.847048 223.57836 -95.181386 223.92004 C -94.848554 224.09088 -94.575036 224.22744 -94.349396 224.32983 C -94.236576 224.38103 -94.138277 224.42383 -94.033136 224.46264 C -93.927995 224.50144 -93.908218 224.56651 -93.511721 224.56651 C -93.115222 224.56651 -93.095446 224.50146 -92.990305 224.46264 C -92.885166 224.42384 -92.784798 224.38104 -92.671979 224.32983 C -92.446339 224.22744 -92.17282 224.09088 -91.839988 223.92004 C -91.174325 223.57836 -90.283487 223.09898 -89.23808 222.52322 C -87.147267 221.37168 -84.438903 219.8355 -81.740346 218.27749 C -79.041789 216.71948 -76.355052 215.14111 -74.312376 213.90618 C -73.291038 213.28872 -72.431711 212.75893 -71.802968 212.3533 C -71.488597 212.15048 -71.23293 211.98023 -71.031439 211.83602 C -70.930693 211.76392 -70.845771 211.69839 -70.759621 211.62673 C -70.673471 211.55503 -70.606466 211.57154 -70.408221 211.22831 C -70.210084 210.88499 -70.257184 210.83489 -70.238206 210.72446 C -70.219226 210.61403 -70.205317 210.50825 -70.193247 210.38495 C -70.169107 210.13835 -70.149179 209.8305 -70.130719 209.45684 C -70.093799 208.70951 -70.064862 207.7009 -70.040802 206.50766 C -69.992662 204.12119 -69.968972 201.00666 -69.968972 197.89062 C -69.968972 194.77459 -69.992662 191.65797 -70.040802 189.27151 C -70.064872 188.07828 -70.093809 187.06964 -70.130719 186.32233 C -70.149179 185.94867 -70.169107 185.64289 -70.193247 185.39629 C -70.205317 185.273 -70.219226 185.16514 -70.238206 185.05471 C -70.257186 184.94427 -70.210019 184.89423 -70.408221 184.55086 C -70.606466 184.20759 -70.67347 184.2241 -70.759621 184.15244 C -70.845771 184.08074 -70.930693 184.01525 -71.031439 183.94315 C -71.23293 183.79894 -71.488597 183.62869 -71.802968 183.42587 C -72.431711 183.02023 -73.291038 182.49045 -74.312376 181.87299 C -76.355052 180.63806 -79.041789 179.06021 -81.740346 177.5022 C -84.438903 175.94419 -87.147267 174.40748 -89.23808 173.25595 C -90.283487 172.68018 -91.174325 172.20082 -91.839988 171.85913 C -92.17282 171.68829 -92.446339 171.55173 -92.671979 171.44934 C -92.784798 171.39814 -92.885166 171.35534 -92.990305 171.31653 C -93.095446 171.27773 -93.115222 171.21266 -93.511721 171.21266 z M -93.511721 173.55877 C -93.347724 173.63527 -93.146772 173.73243 -92.873 173.87296 C -92.243492 174.19608 -91.364613 174.66843 -90.330003 175.23825 C -88.260784 176.37789 -85.559521 177.9106 -82.871026 179.4628 C -80.182532 181.015 -77.505979 182.58816 -75.484397 183.81034 C -74.473606 184.42142 -73.625915 184.94448 -73.031317 185.32808 C -72.824263 185.46166 -72.688279 185.55496 -72.556411 185.64589 C -77.107058 187.98366 -93.175791 197.30939 -93.510687 197.88958 C -93.845783 198.46982 -93.888108 217.05164 -93.637294 222.15994 C -93.781366 222.09064 -93.929133 222.01874 -94.148374 221.90621 C -94.777883 221.58309 -95.656764 221.11073 -96.691371 220.54092 C -98.760587 219.40127 -101.46187 217.87063 -104.15035 216.31843 C -106.83883 214.76624 -109.51543 213.19307 -111.53698 211.9709 C -112.54776 211.35982 -113.39549 210.8347 -113.99006 210.45109 C -114.24805 210.28464 -114.43405 210.16049 -114.58227 210.0568 C -114.59797 209.87655 -114.61358 209.6527 -114.62878 209.34573 C -114.66368 208.63899 -114.69283 207.64207 -114.71663 206.46115 C -114.76423 204.09932 -114.78897 200.99504 -114.78897 197.89062 C -114.78897 194.78621 -114.76433 191.68035 -114.71663 189.31853 C -114.69283 188.13762 -114.66368 187.14018 -114.62878 186.43344 C -114.61358 186.12659 -114.59797 185.90468 -114.58227 185.72444 C -114.43405 185.62074 -114.24811 185.49457 -113.99006 185.32808 C -113.39549 184.94448 -112.54776 184.42142 -111.53698 183.81034 C -109.51543 182.58816 -106.83883 181.015 -104.15035 179.4628 C -101.46187 177.9106 -98.760587 176.37789 -96.691371 175.23825 C -95.656764 174.66843 -94.777883 174.19608 -94.148374 173.87296 C -93.875278 173.73278 -93.675628 173.6353 -93.511721 173.55877 z \"\u003e\u003c/path\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.9.0" + }, + "name": "confidential containers", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#b50000", + "secondaryColor": "#bc1a1a", + "shape": "circle", + "svgColor": "\u003csvg\n width=\"106.39133mm\"\n height=\"115.09025mm\"\n viewBox=\"0 0 106.39133 115.09025\"\n version=\"1.1\"\n id=\"svg201550\"\n inkscape:version=\"1.2-dev (c68a1cf202, 2021-08-16)\"\n sodipodi:docname=\"confidential-containers-logo-only.svg\"\n inkscape:export-filename=\"/home/tigert/Documents/design-temp/confidential-containers/logo/confidential-containers-logo-stacked.png\"\n inkscape:export-xdpi=\"88.529999\"\n inkscape:export-ydpi=\"88.529999\"\n xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\u003e\n \u003csodipodi:namedview\n id=\"namedview201552\"\n pagecolor=\"#ffffff\"\n bordercolor=\"#666666\"\n borderopacity=\"1.0\"\n inkscape:pageshadow=\"2\"\n inkscape:pageopacity=\"0.0\"\n inkscape:pagecheckerboard=\"0\"\n inkscape:document-units=\"mm\"\n showgrid=\"false\"\n fit-margin-top=\"10\"\n fit-margin-left=\"10\"\n fit-margin-right=\"10\"\n lock-margins=\"true\"\n fit-margin-bottom=\"10\"\n inkscape:zoom=\"0.68589358\"\n inkscape:cx=\"1134.2868\"\n inkscape:cy=\"325.12332\"\n inkscape:window-width=\"3840\"\n inkscape:window-height=\"1136\"\n inkscape:window-x=\"0\"\n inkscape:window-y=\"27\"\n inkscape:window-maximized=\"1\"\n inkscape:current-layer=\"layer1\" /\u003e\n \u003cdefs\n id=\"defs201547\" /\u003e\n \u003cg\n inkscape:label=\"Layer 1\"\n inkscape:groupmode=\"layer\"\n id=\"layer1\"\n transform=\"translate(463.92245,-100.21543)\"\u003e\n \u003cg\n id=\"g203500\"\n transform=\"translate(-317.21501,-40.129347)\"\u003e\n \u003cpath\n id=\"path1439\"\n style=\"opacity:1;fill:#ffffff;stroke:#005c94;stroke-width:21.8871;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000;stop-opacity:1\"\n inkscape:transform-center-x=\"-2.0702374e-05\"\n inkscape:transform-center-y=\"-3.2239512e-06\"\n transform=\"matrix(0.22489192,0,0,0.22489192,297.191,30.9734)\"\n d=\"m -1737.2913,942.67731 c -20.0469,0 -163.5883,-82.87365 -173.6118,-100.23483 -10.0235,-17.36118 -10.0235,-183.10848 0,-200.46967 10.0235,-17.36118 153.5649,-100.23483 173.6118,-100.23483 20.047,0 163.5884,82.87364 173.6119,100.23482 10.0234,17.36119 10.0234,183.10849 0,200.46967 -10.0235,17.36118 -153.5649,100.23484 -173.6119,100.23484 z\" /\u003e\n \u003cpath\n id=\"path1441\"\n style=\"fill:#ff4d4d;fill-opacity:1;stroke-width:2.26361;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000\"\n d=\"m -93.5108,223.4354 c -0.7664,0 -21.7398,-12.109 -22.1229,-12.7727 -0.3832,-0.6638 -0.3832,-24.8819 0,-25.5456 0.3831,-0.6637 21.3565,-12.7727 22.1229,-12.7727 0.7664,0 21.7398,12.109 22.1231,12.7727 0.3831,0.6637 0.3831,24.8818 0,25.5456 -0.3833,0.6637 -21.3567,12.7727 -22.1231,12.7727 z\" /\u003e\n \u003cpath\n id=\"path1449\"\n style=\"fill:#b50000;stroke-width:2.26362;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000\"\n d=\"m -71.3875,185.1171 c -0.7664,0 -21.7402,12.1088 -22.1233,12.7725 -0.3833,0.6637 -0.3833,24.882 0,25.5458 0.7662,0 21.74,-12.1088 22.1233,-12.7726 0.3831,-0.6637 0.3831,-24.8822 0,-25.5457 z\" /\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg\n width=\"106.39133mm\"\n height=\"115.09025mm\"\n viewBox=\"0 0 106.39133 115.09025\"\n version=\"1.1\"\n id=\"svg201550\"\n inkscape:version=\"1.2-alpha1 (7125ea6, 2022-03-22)\"\n sodipodi:docname=\"confidential-containers-icon-white.svg\"\n inkscape:export-filename=\"/home/tigert/Documents/design-temp/confidential-containers/logo/confidential-containers-icon-white.png\"\n inkscape:export-xdpi=\"301.07001\"\n inkscape:export-ydpi=\"301.07001\"\n xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\u003e\n \u003csodipodi:namedview\n id=\"namedview201552\"\n pagecolor=\"#ffffff\"\n bordercolor=\"#666666\"\n borderopacity=\"1.0\"\n inkscape:pageshadow=\"2\"\n inkscape:pageopacity=\"0.0\"\n inkscape:pagecheckerboard=\"true\"\n inkscape:document-units=\"mm\"\n showgrid=\"false\"\n fit-margin-top=\"10\"\n fit-margin-left=\"10\"\n fit-margin-right=\"10\"\n lock-margins=\"true\"\n fit-margin-bottom=\"10\"\n inkscape:zoom=\"0.68589358\"\n inkscape:cx=\"246.39391\"\n inkscape:cy=\"330.95513\"\n inkscape:window-width=\"1950\"\n inkscape:window-height=\"1131\"\n inkscape:window-x=\"26\"\n inkscape:window-y=\"23\"\n inkscape:window-maximized=\"0\"\n inkscape:current-layer=\"layer1\"\n inkscape:deskcolor=\"#d1d1d1\" /\u003e\n \u003cdefs\n id=\"defs201547\" /\u003e\n \u003cg\n inkscape:label=\"Layer 1\"\n inkscape:groupmode=\"layer\"\n id=\"layer1\"\n transform=\"translate(463.92245,-100.21543)\"\u003e\n \u003cg\n id=\"g203500\"\n transform=\"translate(-317.21501,-40.129347)\"\n style=\"fill:#ffffff\"\u003e\n \u003cg\n id=\"g7413\"\n style=\"fill:#ffffff\"\u003e\n \u003cpath\n style=\"color:#000000;fill:#ffffff;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none\"\n d=\"m -1737.291,530.79492 c -6.2759,0 -10.4909,1.87436 -16.8008,4.34961 -6.3099,2.47525 -13.7984,5.88144 -22.1836,9.98438 -16.7703,8.20587 -37.0577,19.19417 -57.0527,30.73828 -19.995,11.54411 -39.6548,23.61845 -55.1465,34.03906 -7.7458,5.2103 -14.4397,9.99381 -19.7383,14.2207 -5.2986,4.2269 -9.03,6.93993 -12.168,12.375 -3.1379,5.43509 -3.6215,10.02247 -4.6328,16.72461 -1.0113,6.70215 -1.8059,14.88988 -2.4453,24.20313 -1.2787,18.62648 -1.9062,41.68912 -1.9062,64.77734 0,23.08822 0.6275,46.15281 1.9062,64.7793 0.6394,9.31324 1.434,17.50098 2.4453,24.20312 1.0113,6.70215 1.4949,11.28953 4.6328,16.72461 3.138,5.43508 6.8694,8.14811 12.168,12.375 5.2986,4.22689 11.9925,9.0104 19.7383,14.22071 15.4917,10.42061 35.1515,22.49299 55.1465,34.0371 19.995,11.54412 40.2824,22.53436 57.0527,30.74024 8.3852,4.10294 15.8737,7.50717 22.1836,9.98242 6.3099,2.47525 10.5249,4.35156 16.8008,4.35156 6.2759,0 10.4909,-1.87631 16.8008,-4.35156 6.3099,-2.47525 13.7984,-5.87948 22.1836,-9.98242 16.7703,-8.20588 37.0577,-19.19612 57.0527,-30.74024 19.995,-11.54411 39.6548,-23.61649 55.1465,-34.0371 7.7458,-5.21031 14.4377,-9.99382 19.7363,-14.22071 5.2986,-4.22689 9.032,-6.93992 12.1699,-12.375 3.1379,-5.43507 3.6196,-10.02247 4.6309,-16.72461 1.0113,-6.70214 1.8079,-14.88988 2.4473,-24.20312 1.2786,-18.62648 1.9042,-41.69108 1.9042,-64.7793 0,-23.08822 -0.6256,-46.15086 -1.9042,-64.77734 -0.6394,-9.31324 -1.436,-17.50099 -2.4473,-24.20313 -1.0113,-6.70214 -1.493,-11.28953 -4.6309,-16.72461 -3.1379,-5.43507 -6.8713,-8.1481 -12.1699,-12.375 -5.2986,-4.22689 -11.9905,-9.0104 -19.7363,-14.2207 -15.4917,-10.42061 -35.1515,-22.49495 -55.1465,-34.03906 -19.995,-11.54411 -40.2824,-22.53241 -57.0527,-30.73828 -8.3852,-4.10294 -15.8737,-7.50913 -22.1836,-9.98438 -6.3099,-2.47525 -10.5249,-4.34961 -16.8008,-4.34961 z m 0,21.88672 c -1.2642,0 3.3923,0.71513 8.8086,2.83984 5.4163,2.12472 12.5091,5.32986 20.5566,9.26758 16.0951,7.87546 36.0775,18.68878 55.7266,30.03321 19.6491,11.34442 39.0071,23.24313 53.875,33.24414 7.4339,5.0005 13.7565,9.54163 18.3047,13.16992 4.5482,3.62829 7.4953,7.30377 6.8632,6.20898 -0.632,-1.09478 1.0773,3.29387 1.9454,9.04688 0.868,5.75301 1.6383,13.49731 2.2519,22.43554 1.2272,17.87647 1.8535,40.59045 1.8535,63.2793 0,22.68886 -0.6263,45.40283 -1.8535,63.2793 -0.6136,8.93823 -1.3839,16.68449 -2.2519,22.4375 -0.8681,5.75301 -2.5774,10.14166 -1.9454,9.04687 0.6321,-1.09478 -2.315,2.5807 -6.8632,6.20899 -4.5482,3.62829 -10.8708,8.16746 -18.3047,13.16797 -14.8679,10.00101 -34.2259,21.90166 -53.875,33.24609 -19.6491,11.34443 -39.6315,22.15775 -55.7266,30.0332 -8.0475,3.93773 -15.1403,7.14287 -20.5566,9.26758 -5.4163,2.12471 -10.0728,2.83984 -8.8086,2.83984 1.2642,0 -3.3923,-0.71513 -8.8086,-2.83984 -5.4163,-2.12471 -12.5091,-5.32985 -20.5567,-9.26758 -16.095,-7.87545 -36.0793,-18.68877 -55.7285,-30.0332 -19.6491,-11.34443 -39.0051,-23.24508 -53.873,-33.24609 -7.434,-5.00051 -13.7565,-9.53968 -18.3047,-13.16797 -4.5482,-3.62829 -7.4954,-7.30377 -6.8633,-6.20899 0.6321,1.0948 -1.0772,-3.29387 -1.9453,-9.04687 -0.8681,-5.753 -1.6384,-13.49927 -2.2519,-22.4375 -1.2272,-17.87647 -1.8536,-40.59045 -1.8536,-63.2793 0,-22.68885 0.6264,-45.40283 1.8536,-63.2793 0.6135,-8.93823 1.3838,-16.68254 2.2519,-22.43554 0.8681,-5.75301 2.5774,-10.14167 1.9453,-9.04688 -0.6321,1.09479 2.3151,-2.58069 6.8633,-6.20898 4.5482,-3.62829 10.8707,-8.16942 18.3047,-13.16992 14.8679,-10.00101 34.2239,-21.89972 53.873,-33.24414 19.6492,-11.34443 39.6335,-22.15775 55.7285,-30.03321 8.0476,-3.93773 15.1404,-7.14286 20.5567,-9.26758 5.4163,-2.12471 10.0728,-2.83984 8.8086,-2.83984 z\"\n id=\"path1439\"\n transform=\"matrix(0.22489192,0,0,0.22489192,297.191,30.9734)\" /\u003e\n \u003cpath\n id=\"path1441\"\n style=\"color:#000000;fill:#ffffff;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none\"\n d=\"M -93.511721 171.21266 C -93.908218 171.21266 -93.927995 171.27771 -94.033136 171.31653 C -94.138277 171.35533 -94.236576 171.39813 -94.349396 171.44934 C -94.575036 171.55173 -94.848554 171.68829 -95.181386 171.85913 C -95.847048 172.20082 -96.73789 172.68018 -97.783294 173.25595 C -99.874104 174.40748 -102.58248 175.94419 -105.28103 177.5022 C -107.97958 179.06021 -110.66635 180.63806 -112.709 181.87299 C -113.73033 182.49045 -114.59019 183.02023 -115.21892 183.42587 C -115.53328 183.62869 -115.78897 183.79893 -115.99045 183.94315 C -116.0912 184.01525 -116.17559 184.08077 -116.26175 184.15244 C -116.34795 184.22414 -116.41489 184.20742 -116.61315 184.55086 C -116.81142 184.89425 -116.76419 184.94426 -116.78317 185.05471 C -116.80217 185.16515 -116.81613 185.27299 -116.82813 185.39629 C -116.85223 185.6429 -116.87216 185.94866 -116.89066 186.32233 C -116.92756 187.06965 -116.95657 188.07828 -116.98057 189.27151 C -117.02877 191.65798 -117.05292 194.77459 -117.05292 197.89062 C -117.05292 201.00666 -117.02877 204.12119 -116.98057 206.50766 C -116.95647 207.70091 -116.92756 208.70951 -116.89066 209.45684 C -116.87216 209.83051 -116.85223 210.13834 -116.82813 210.38495 C -116.81603 210.50825 -116.80217 210.61402 -116.78317 210.72446 C -116.76417 210.8349 -116.81137 210.88497 -116.61315 211.22831 C -116.41489 211.57179 -116.34791 211.55506 -116.26175 211.62673 C -116.17555 211.69843 -116.0912 211.76391 -115.99045 211.83602 C -115.78897 211.98023 -115.53328 212.15048 -115.21892 212.3533 C -114.59019 212.75894 -113.73033 213.28872 -112.709 213.90618 C -110.66635 215.14111 -107.97958 216.71948 -105.28103 218.27749 C -102.58248 219.8355 -99.874104 221.37168 -97.783294 222.52322 C -96.73789 223.09898 -95.847048 223.57836 -95.181386 223.92004 C -94.848554 224.09088 -94.575036 224.22744 -94.349396 224.32983 C -94.236576 224.38103 -94.138277 224.42383 -94.033136 224.46264 C -93.927995 224.50144 -93.908218 224.56651 -93.511721 224.56651 C -93.115222 224.56651 -93.095446 224.50146 -92.990305 224.46264 C -92.885166 224.42384 -92.784798 224.38104 -92.671979 224.32983 C -92.446339 224.22744 -92.17282 224.09088 -91.839988 223.92004 C -91.174325 223.57836 -90.283487 223.09898 -89.23808 222.52322 C -87.147267 221.37168 -84.438903 219.8355 -81.740346 218.27749 C -79.041789 216.71948 -76.355052 215.14111 -74.312376 213.90618 C -73.291038 213.28872 -72.431711 212.75893 -71.802968 212.3533 C -71.488597 212.15048 -71.23293 211.98023 -71.031439 211.83602 C -70.930693 211.76392 -70.845771 211.69839 -70.759621 211.62673 C -70.673471 211.55503 -70.606466 211.57154 -70.408221 211.22831 C -70.210084 210.88499 -70.257184 210.83489 -70.238206 210.72446 C -70.219226 210.61403 -70.205317 210.50825 -70.193247 210.38495 C -70.169107 210.13835 -70.149179 209.8305 -70.130719 209.45684 C -70.093799 208.70951 -70.064862 207.7009 -70.040802 206.50766 C -69.992662 204.12119 -69.968972 201.00666 -69.968972 197.89062 C -69.968972 194.77459 -69.992662 191.65797 -70.040802 189.27151 C -70.064872 188.07828 -70.093809 187.06964 -70.130719 186.32233 C -70.149179 185.94867 -70.169107 185.64289 -70.193247 185.39629 C -70.205317 185.273 -70.219226 185.16514 -70.238206 185.05471 C -70.257186 184.94427 -70.210019 184.89423 -70.408221 184.55086 C -70.606466 184.20759 -70.67347 184.2241 -70.759621 184.15244 C -70.845771 184.08074 -70.930693 184.01525 -71.031439 183.94315 C -71.23293 183.79894 -71.488597 183.62869 -71.802968 183.42587 C -72.431711 183.02023 -73.291038 182.49045 -74.312376 181.87299 C -76.355052 180.63806 -79.041789 179.06021 -81.740346 177.5022 C -84.438903 175.94419 -87.147267 174.40748 -89.23808 173.25595 C -90.283487 172.68018 -91.174325 172.20082 -91.839988 171.85913 C -92.17282 171.68829 -92.446339 171.55173 -92.671979 171.44934 C -92.784798 171.39814 -92.885166 171.35534 -92.990305 171.31653 C -93.095446 171.27773 -93.115222 171.21266 -93.511721 171.21266 z M -93.511721 173.55877 C -93.347724 173.63527 -93.146772 173.73243 -92.873 173.87296 C -92.243492 174.19608 -91.364613 174.66843 -90.330003 175.23825 C -88.260784 176.37789 -85.559521 177.9106 -82.871026 179.4628 C -80.182532 181.015 -77.505979 182.58816 -75.484397 183.81034 C -74.473606 184.42142 -73.625915 184.94448 -73.031317 185.32808 C -72.824263 185.46166 -72.688279 185.55496 -72.556411 185.64589 C -77.107058 187.98366 -93.175791 197.30939 -93.510687 197.88958 C -93.845783 198.46982 -93.888108 217.05164 -93.637294 222.15994 C -93.781366 222.09064 -93.929133 222.01874 -94.148374 221.90621 C -94.777883 221.58309 -95.656764 221.11073 -96.691371 220.54092 C -98.760587 219.40127 -101.46187 217.87063 -104.15035 216.31843 C -106.83883 214.76624 -109.51543 213.19307 -111.53698 211.9709 C -112.54776 211.35982 -113.39549 210.8347 -113.99006 210.45109 C -114.24805 210.28464 -114.43405 210.16049 -114.58227 210.0568 C -114.59797 209.87655 -114.61358 209.6527 -114.62878 209.34573 C -114.66368 208.63899 -114.69283 207.64207 -114.71663 206.46115 C -114.76423 204.09932 -114.78897 200.99504 -114.78897 197.89062 C -114.78897 194.78621 -114.76433 191.68035 -114.71663 189.31853 C -114.69283 188.13762 -114.66368 187.14018 -114.62878 186.43344 C -114.61358 186.12659 -114.59797 185.90468 -114.58227 185.72444 C -114.43405 185.62074 -114.24811 185.49457 -113.99006 185.32808 C -113.39549 184.94448 -112.54776 184.42142 -111.53698 183.81034 C -109.51543 182.58816 -106.83883 181.015 -104.15035 179.4628 C -101.46187 177.9106 -98.760587 176.37789 -96.691371 175.23825 C -95.656764 174.66843 -94.777883 174.19608 -94.148374 173.87296 C -93.875278 173.73278 -93.675628 173.6353 -93.511721 173.55877 z \" /\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/confidential containers/v0.9.0/v1.0.0/model.json b/server/meshmodel/confidential containers/v0.9.0/v1.0.0/model.json new file mode 100644 index 00000000000..a30d36fe4ae --- /dev/null +++ b/server/meshmodel/confidential containers/v0.9.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Runtime" + }, + "displayName": "Confidential Containers", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#b50000", + "secondaryColor": "#bc1a1a", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 106.39133 115.09025\" version=\"1.1\" id=\"svg201550\" xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" inkscape:version=\"1.2-dev (c68a1cf202, 2021-08-16)\" xmlns:sodipodi-0.dtd=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" sodipodi-0.dtd:docname=\"confidential-containers-logo-only.svg\" inkscape:export-filename=\"/home/tigert/Documents/design-temp/confidential-containers/logo/confidential-containers-logo-stacked.png\" inkscape:export-xdpi=\"88.529999\" inkscape:export-ydpi=\"88.529999\" xmlns:_xmlns=\"xmlns\" _xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" _xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" _xmlns:svg=\"http://www.w3.org/2000/svg\"\u003e\n \u003cnamedview xmlns=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" id=\"namedview201552\" pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1.0\" inkscape:pageshadow=\"2\" inkscape:pageopacity=\"0.0\" inkscape:pagecheckerboard=\"0\" inkscape:document-units=\"mm\" showgrid=\"false\" fit-margin-top=\"10\" fit-margin-left=\"10\" fit-margin-right=\"10\" lock-margins=\"true\" fit-margin-bottom=\"10\" inkscape:zoom=\"0.68589358\" inkscape:cx=\"1134.2868\" inkscape:cy=\"325.12332\" inkscape:window-width=\"3840\" inkscape:window-height=\"1136\" inkscape:window-x=\"0\" inkscape:window-y=\"27\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"layer1\"\u003e\u003c/namedview\u003e\n \u003cdefs xmlns=\"http://www.w3.org/2000/svg\" id=\"defs201547\"\u003e\u003c/defs\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" inkscape:label=\"Layer 1\" inkscape:groupmode=\"layer\" id=\"layer1\" transform=\"translate(463.92245,-100.21543)\"\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"g203500\" transform=\"translate(-317.21501,-40.129347)\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"path1439\" style=\"opacity:1;fill:#ffffff;stroke:#005c94;stroke-width:21.8871;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000;stop-opacity:1\" inkscape:transform-center-x=\"-2.0702374e-05\" inkscape:transform-center-y=\"-3.2239512e-06\" transform=\"matrix(0.22489192,0,0,0.22489192,297.191,30.9734)\" d=\"m -1737.2913,942.67731 c -20.0469,0 -163.5883,-82.87365 -173.6118,-100.23483 -10.0235,-17.36118 -10.0235,-183.10848 0,-200.46967 10.0235,-17.36118 153.5649,-100.23483 173.6118,-100.23483 20.047,0 163.5884,82.87364 173.6119,100.23482 10.0234,17.36119 10.0234,183.10849 0,200.46967 -10.0235,17.36118 -153.5649,100.23484 -173.6119,100.23484 z\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"path1441\" style=\"fill:#ff4d4d;fill-opacity:1;stroke-width:2.26361;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000\" d=\"m -93.5108,223.4354 c -0.7664,0 -21.7398,-12.109 -22.1229,-12.7727 -0.3832,-0.6638 -0.3832,-24.8819 0,-25.5456 0.3831,-0.6637 21.3565,-12.7727 22.1229,-12.7727 0.7664,0 21.7398,12.109 22.1231,12.7727 0.3831,0.6637 0.3831,24.8818 0,25.5456 -0.3833,0.6637 -21.3567,12.7727 -22.1231,12.7727 z\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"path1449\" style=\"fill:#b50000;stroke-width:2.26362;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000\" d=\"m -71.3875,185.1171 c -0.7664,0 -21.7402,12.1088 -22.1233,12.7725 -0.3833,0.6637 -0.3833,24.882 0,25.5458 0.7662,0 21.74,-12.1088 22.1233,-12.7726 0.3831,-0.6637 0.3831,-24.8822 0,-25.5457 z\"\u003e\u003c/path\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 106.39133 115.09025\" version=\"1.1\" id=\"svg201550\" xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" inkscape:version=\"1.2-alpha1 (7125ea6, 2022-03-22)\" xmlns:sodipodi-0.dtd=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" sodipodi-0.dtd:docname=\"confidential-containers-icon-white.svg\" inkscape:export-filename=\"/home/tigert/Documents/design-temp/confidential-containers/logo/confidential-containers-icon-white.png\" inkscape:export-xdpi=\"301.07001\" inkscape:export-ydpi=\"301.07001\" xmlns:_xmlns=\"xmlns\" _xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" _xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" _xmlns:svg=\"http://www.w3.org/2000/svg\"\u003e\n \u003cnamedview xmlns=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\" id=\"namedview201552\" pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1.0\" inkscape:pageshadow=\"2\" inkscape:pageopacity=\"0.0\" inkscape:pagecheckerboard=\"true\" inkscape:document-units=\"mm\" showgrid=\"false\" fit-margin-top=\"10\" fit-margin-left=\"10\" fit-margin-right=\"10\" lock-margins=\"true\" fit-margin-bottom=\"10\" inkscape:zoom=\"0.68589358\" inkscape:cx=\"246.39391\" inkscape:cy=\"330.95513\" inkscape:window-width=\"1950\" inkscape:window-height=\"1131\" inkscape:window-x=\"26\" inkscape:window-y=\"23\" inkscape:window-maximized=\"0\" inkscape:current-layer=\"layer1\" inkscape:deskcolor=\"#d1d1d1\"\u003e\u003c/namedview\u003e\n \u003cdefs xmlns=\"http://www.w3.org/2000/svg\" id=\"defs201547\"\u003e\u003c/defs\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" inkscape:label=\"Layer 1\" inkscape:groupmode=\"layer\" id=\"layer1\" transform=\"translate(463.92245,-100.21543)\"\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"g203500\" transform=\"translate(-317.21501,-40.129347)\" style=\"fill:#ffffff\"\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"g7413\" style=\"fill:#ffffff\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" style=\"color:#000000;fill:#ffffff;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none\" d=\"m -1737.291,530.79492 c -6.2759,0 -10.4909,1.87436 -16.8008,4.34961 -6.3099,2.47525 -13.7984,5.88144 -22.1836,9.98438 -16.7703,8.20587 -37.0577,19.19417 -57.0527,30.73828 -19.995,11.54411 -39.6548,23.61845 -55.1465,34.03906 -7.7458,5.2103 -14.4397,9.99381 -19.7383,14.2207 -5.2986,4.2269 -9.03,6.93993 -12.168,12.375 -3.1379,5.43509 -3.6215,10.02247 -4.6328,16.72461 -1.0113,6.70215 -1.8059,14.88988 -2.4453,24.20313 -1.2787,18.62648 -1.9062,41.68912 -1.9062,64.77734 0,23.08822 0.6275,46.15281 1.9062,64.7793 0.6394,9.31324 1.434,17.50098 2.4453,24.20312 1.0113,6.70215 1.4949,11.28953 4.6328,16.72461 3.138,5.43508 6.8694,8.14811 12.168,12.375 5.2986,4.22689 11.9925,9.0104 19.7383,14.22071 15.4917,10.42061 35.1515,22.49299 55.1465,34.0371 19.995,11.54412 40.2824,22.53436 57.0527,30.74024 8.3852,4.10294 15.8737,7.50717 22.1836,9.98242 6.3099,2.47525 10.5249,4.35156 16.8008,4.35156 6.2759,0 10.4909,-1.87631 16.8008,-4.35156 6.3099,-2.47525 13.7984,-5.87948 22.1836,-9.98242 16.7703,-8.20588 37.0577,-19.19612 57.0527,-30.74024 19.995,-11.54411 39.6548,-23.61649 55.1465,-34.0371 7.7458,-5.21031 14.4377,-9.99382 19.7363,-14.22071 5.2986,-4.22689 9.032,-6.93992 12.1699,-12.375 3.1379,-5.43507 3.6196,-10.02247 4.6309,-16.72461 1.0113,-6.70214 1.8079,-14.88988 2.4473,-24.20312 1.2786,-18.62648 1.9042,-41.69108 1.9042,-64.7793 0,-23.08822 -0.6256,-46.15086 -1.9042,-64.77734 -0.6394,-9.31324 -1.436,-17.50099 -2.4473,-24.20313 -1.0113,-6.70214 -1.493,-11.28953 -4.6309,-16.72461 -3.1379,-5.43507 -6.8713,-8.1481 -12.1699,-12.375 -5.2986,-4.22689 -11.9905,-9.0104 -19.7363,-14.2207 -15.4917,-10.42061 -35.1515,-22.49495 -55.1465,-34.03906 -19.995,-11.54411 -40.2824,-22.53241 -57.0527,-30.73828 -8.3852,-4.10294 -15.8737,-7.50913 -22.1836,-9.98438 -6.3099,-2.47525 -10.5249,-4.34961 -16.8008,-4.34961 z m 0,21.88672 c -1.2642,0 3.3923,0.71513 8.8086,2.83984 5.4163,2.12472 12.5091,5.32986 20.5566,9.26758 16.0951,7.87546 36.0775,18.68878 55.7266,30.03321 19.6491,11.34442 39.0071,23.24313 53.875,33.24414 7.4339,5.0005 13.7565,9.54163 18.3047,13.16992 4.5482,3.62829 7.4953,7.30377 6.8632,6.20898 -0.632,-1.09478 1.0773,3.29387 1.9454,9.04688 0.868,5.75301 1.6383,13.49731 2.2519,22.43554 1.2272,17.87647 1.8535,40.59045 1.8535,63.2793 0,22.68886 -0.6263,45.40283 -1.8535,63.2793 -0.6136,8.93823 -1.3839,16.68449 -2.2519,22.4375 -0.8681,5.75301 -2.5774,10.14166 -1.9454,9.04687 0.6321,-1.09478 -2.315,2.5807 -6.8632,6.20899 -4.5482,3.62829 -10.8708,8.16746 -18.3047,13.16797 -14.8679,10.00101 -34.2259,21.90166 -53.875,33.24609 -19.6491,11.34443 -39.6315,22.15775 -55.7266,30.0332 -8.0475,3.93773 -15.1403,7.14287 -20.5566,9.26758 -5.4163,2.12471 -10.0728,2.83984 -8.8086,2.83984 1.2642,0 -3.3923,-0.71513 -8.8086,-2.83984 -5.4163,-2.12471 -12.5091,-5.32985 -20.5567,-9.26758 -16.095,-7.87545 -36.0793,-18.68877 -55.7285,-30.0332 -19.6491,-11.34443 -39.0051,-23.24508 -53.873,-33.24609 -7.434,-5.00051 -13.7565,-9.53968 -18.3047,-13.16797 -4.5482,-3.62829 -7.4954,-7.30377 -6.8633,-6.20899 0.6321,1.0948 -1.0772,-3.29387 -1.9453,-9.04687 -0.8681,-5.753 -1.6384,-13.49927 -2.2519,-22.4375 -1.2272,-17.87647 -1.8536,-40.59045 -1.8536,-63.2793 0,-22.68885 0.6264,-45.40283 1.8536,-63.2793 0.6135,-8.93823 1.3838,-16.68254 2.2519,-22.43554 0.8681,-5.75301 2.5774,-10.14167 1.9453,-9.04688 -0.6321,1.09479 2.3151,-2.58069 6.8633,-6.20898 4.5482,-3.62829 10.8707,-8.16942 18.3047,-13.16992 14.8679,-10.00101 34.2239,-21.89972 53.873,-33.24414 19.6492,-11.34443 39.6335,-22.15775 55.7285,-30.03321 8.0476,-3.93773 15.1404,-7.14286 20.5567,-9.26758 5.4163,-2.12471 10.0728,-2.83984 8.8086,-2.83984 z\" id=\"path1439\" transform=\"matrix(0.22489192,0,0,0.22489192,297.191,30.9734)\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"path1441\" style=\"color:#000000;fill:#ffffff;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none\" d=\"M -93.511721 171.21266 C -93.908218 171.21266 -93.927995 171.27771 -94.033136 171.31653 C -94.138277 171.35533 -94.236576 171.39813 -94.349396 171.44934 C -94.575036 171.55173 -94.848554 171.68829 -95.181386 171.85913 C -95.847048 172.20082 -96.73789 172.68018 -97.783294 173.25595 C -99.874104 174.40748 -102.58248 175.94419 -105.28103 177.5022 C -107.97958 179.06021 -110.66635 180.63806 -112.709 181.87299 C -113.73033 182.49045 -114.59019 183.02023 -115.21892 183.42587 C -115.53328 183.62869 -115.78897 183.79893 -115.99045 183.94315 C -116.0912 184.01525 -116.17559 184.08077 -116.26175 184.15244 C -116.34795 184.22414 -116.41489 184.20742 -116.61315 184.55086 C -116.81142 184.89425 -116.76419 184.94426 -116.78317 185.05471 C -116.80217 185.16515 -116.81613 185.27299 -116.82813 185.39629 C -116.85223 185.6429 -116.87216 185.94866 -116.89066 186.32233 C -116.92756 187.06965 -116.95657 188.07828 -116.98057 189.27151 C -117.02877 191.65798 -117.05292 194.77459 -117.05292 197.89062 C -117.05292 201.00666 -117.02877 204.12119 -116.98057 206.50766 C -116.95647 207.70091 -116.92756 208.70951 -116.89066 209.45684 C -116.87216 209.83051 -116.85223 210.13834 -116.82813 210.38495 C -116.81603 210.50825 -116.80217 210.61402 -116.78317 210.72446 C -116.76417 210.8349 -116.81137 210.88497 -116.61315 211.22831 C -116.41489 211.57179 -116.34791 211.55506 -116.26175 211.62673 C -116.17555 211.69843 -116.0912 211.76391 -115.99045 211.83602 C -115.78897 211.98023 -115.53328 212.15048 -115.21892 212.3533 C -114.59019 212.75894 -113.73033 213.28872 -112.709 213.90618 C -110.66635 215.14111 -107.97958 216.71948 -105.28103 218.27749 C -102.58248 219.8355 -99.874104 221.37168 -97.783294 222.52322 C -96.73789 223.09898 -95.847048 223.57836 -95.181386 223.92004 C -94.848554 224.09088 -94.575036 224.22744 -94.349396 224.32983 C -94.236576 224.38103 -94.138277 224.42383 -94.033136 224.46264 C -93.927995 224.50144 -93.908218 224.56651 -93.511721 224.56651 C -93.115222 224.56651 -93.095446 224.50146 -92.990305 224.46264 C -92.885166 224.42384 -92.784798 224.38104 -92.671979 224.32983 C -92.446339 224.22744 -92.17282 224.09088 -91.839988 223.92004 C -91.174325 223.57836 -90.283487 223.09898 -89.23808 222.52322 C -87.147267 221.37168 -84.438903 219.8355 -81.740346 218.27749 C -79.041789 216.71948 -76.355052 215.14111 -74.312376 213.90618 C -73.291038 213.28872 -72.431711 212.75893 -71.802968 212.3533 C -71.488597 212.15048 -71.23293 211.98023 -71.031439 211.83602 C -70.930693 211.76392 -70.845771 211.69839 -70.759621 211.62673 C -70.673471 211.55503 -70.606466 211.57154 -70.408221 211.22831 C -70.210084 210.88499 -70.257184 210.83489 -70.238206 210.72446 C -70.219226 210.61403 -70.205317 210.50825 -70.193247 210.38495 C -70.169107 210.13835 -70.149179 209.8305 -70.130719 209.45684 C -70.093799 208.70951 -70.064862 207.7009 -70.040802 206.50766 C -69.992662 204.12119 -69.968972 201.00666 -69.968972 197.89062 C -69.968972 194.77459 -69.992662 191.65797 -70.040802 189.27151 C -70.064872 188.07828 -70.093809 187.06964 -70.130719 186.32233 C -70.149179 185.94867 -70.169107 185.64289 -70.193247 185.39629 C -70.205317 185.273 -70.219226 185.16514 -70.238206 185.05471 C -70.257186 184.94427 -70.210019 184.89423 -70.408221 184.55086 C -70.606466 184.20759 -70.67347 184.2241 -70.759621 184.15244 C -70.845771 184.08074 -70.930693 184.01525 -71.031439 183.94315 C -71.23293 183.79894 -71.488597 183.62869 -71.802968 183.42587 C -72.431711 183.02023 -73.291038 182.49045 -74.312376 181.87299 C -76.355052 180.63806 -79.041789 179.06021 -81.740346 177.5022 C -84.438903 175.94419 -87.147267 174.40748 -89.23808 173.25595 C -90.283487 172.68018 -91.174325 172.20082 -91.839988 171.85913 C -92.17282 171.68829 -92.446339 171.55173 -92.671979 171.44934 C -92.784798 171.39814 -92.885166 171.35534 -92.990305 171.31653 C -93.095446 171.27773 -93.115222 171.21266 -93.511721 171.21266 z M -93.511721 173.55877 C -93.347724 173.63527 -93.146772 173.73243 -92.873 173.87296 C -92.243492 174.19608 -91.364613 174.66843 -90.330003 175.23825 C -88.260784 176.37789 -85.559521 177.9106 -82.871026 179.4628 C -80.182532 181.015 -77.505979 182.58816 -75.484397 183.81034 C -74.473606 184.42142 -73.625915 184.94448 -73.031317 185.32808 C -72.824263 185.46166 -72.688279 185.55496 -72.556411 185.64589 C -77.107058 187.98366 -93.175791 197.30939 -93.510687 197.88958 C -93.845783 198.46982 -93.888108 217.05164 -93.637294 222.15994 C -93.781366 222.09064 -93.929133 222.01874 -94.148374 221.90621 C -94.777883 221.58309 -95.656764 221.11073 -96.691371 220.54092 C -98.760587 219.40127 -101.46187 217.87063 -104.15035 216.31843 C -106.83883 214.76624 -109.51543 213.19307 -111.53698 211.9709 C -112.54776 211.35982 -113.39549 210.8347 -113.99006 210.45109 C -114.24805 210.28464 -114.43405 210.16049 -114.58227 210.0568 C -114.59797 209.87655 -114.61358 209.6527 -114.62878 209.34573 C -114.66368 208.63899 -114.69283 207.64207 -114.71663 206.46115 C -114.76423 204.09932 -114.78897 200.99504 -114.78897 197.89062 C -114.78897 194.78621 -114.76433 191.68035 -114.71663 189.31853 C -114.69283 188.13762 -114.66368 187.14018 -114.62878 186.43344 C -114.61358 186.12659 -114.59797 185.90468 -114.58227 185.72444 C -114.43405 185.62074 -114.24811 185.49457 -113.99006 185.32808 C -113.39549 184.94448 -112.54776 184.42142 -111.53698 183.81034 C -109.51543 182.58816 -106.83883 181.015 -104.15035 179.4628 C -101.46187 177.9106 -98.760587 176.37789 -96.691371 175.23825 C -95.656764 174.66843 -94.777883 174.19608 -94.148374 173.87296 C -93.875278 173.73278 -93.675628 173.6353 -93.511721 173.55877 z \"\u003e\u003c/path\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n \u003c/g\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.9.0" + }, + "name": "confidential containers", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/CompositeResourceDefinition.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/CompositeResourceDefinition.json new file mode 100644 index 00000000000..5fc80e0005f --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/CompositeResourceDefinition.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "CompositeResourceDefinition", + "schema": "{\n \"description\": \"A CompositeResourceDefinition defines the schema for a new custom Kubernetes\\nAPI.\\n\\n\\nRead the Crossplane documentation for\\n[more information about CustomResourceDefinitions](https://docs.crossplane.io/latest/concepts/composite-resource-definitions).\",\n \"properties\": {\n \"spec\": {\n \"description\": \"CompositeResourceDefinitionSpec specifies the desired state of the definition.\",\n \"properties\": {\n \"claimNames\": {\n \"description\": \"ClaimNames specifies the names of an optional composite resource claim.\\nWhen claim names are specified Crossplane will create a namespaced\\n'composite resource claim' CRD that corresponds to the defined composite\\nresource. This composite resource claim acts as a namespaced proxy for\\nthe composite resource; creating, updating, or deleting the claim will\\ncreate, update, or delete a corresponding composite resource. You may add\\nclaim names to an existing CompositeResourceDefinition, but they cannot\\nbe changed or removed once they have been set.\",\n \"properties\": {\n \"categories\": {\n \"description\": \"categories is a list of grouped resources this custom resource belongs to (e.g. 'all').\\nThis is published in API discovery documents, and used by clients to support invocations like\\n`kubectl get all`.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"kind\": {\n \"description\": \"kind is the serialized kind of the resource. It is normally CamelCase and singular.\\nCustom resource instances will use this value as the `kind` attribute in API calls.\",\n \"type\": \"string\"\n },\n \"listKind\": {\n \"description\": \"listKind is the serialized kind of the list for this resource. Defaults to \\\"`kind`List\\\".\",\n \"type\": \"string\"\n },\n \"plural\": {\n \"description\": \"plural is the plural name of the resource to serve.\\nThe custom resources are served under `/apis/\\u003cgroup\\u003e/\\u003cversion\\u003e/.../\\u003cplural\\u003e`.\\nMust match the name of the CustomResourceDefinition (in the form `\\u003cnames.plural\\u003e.\\u003cgroup\\u003e`).\\nMust be all lowercase.\",\n \"type\": \"string\"\n },\n \"shortNames\": {\n \"description\": \"shortNames are short names for the resource, exposed in API discovery documents,\\nand used by clients to support invocations like `kubectl get \\u003cshortname\\u003e`.\\nIt must be all lowercase.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"singular\": {\n \"description\": \"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"plural\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"Value is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n },\n \"connectionSecretKeys\": {\n \"description\": \"ConnectionSecretKeys is the list of keys that will be exposed to the end\\nuser of the defined kind.\\nIf the list is empty, all keys will be published.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"conversion\": {\n \"description\": \"Conversion defines all conversion settings for the defined Composite resource.\",\n \"properties\": {\n \"strategy\": {\n \"description\": \"strategy specifies how custom resources are converted between versions. Allowed values are:\\n- `\\\"None\\\"`: The converter only change the apiVersion and would not touch any other field in the custom resource.\\n- `\\\"Webhook\\\"`: API Server will call to an external webhook to do the conversion. Additional information\\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.\",\n \"type\": \"string\"\n },\n \"webhook\": {\n \"description\": \"webhook describes how to call the conversion webhook. Required when `strategy` is set to `\\\"Webhook\\\"`.\",\n \"properties\": {\n \"clientConfig\": {\n \"description\": \"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\n \"properties\": {\n \"caBundle\": {\n \"description\": \"caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\\nIf unspecified, system trust roots on the apiserver are used.\",\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"service\": {\n \"description\": \"service is a reference to the service for this webhook. Either\\nservice or url must be specified.\\n\\n\\nIf the webhook is running within the cluster, then you should use `service`.\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is the name of the service.\\nRequired\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace is the namespace of the service.\\nRequired\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is an optional URL path at which the webhook will be contacted.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"port is an optional service port at which the webhook will be contacted.\\n`port` should be a valid port number (1-65535, inclusive).\\nDefaults to 443 for backward compatibility.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"url gives the location of the webhook, in standard URL form\\n(`scheme://host:port/path`). Exactly one of `url` or `service`\\nmust be specified.\\n\\n\\nThe `host` should not refer to a service running in the cluster; use\\nthe `service` field instead. The host might be resolved via external\\nDNS in some apiservers (e.g., `kube-apiserver` cannot resolve\\nin-cluster DNS as that would be a layering violation). `host` may\\nalso be an IP address.\\n\\n\\nPlease note that using `localhost` or `127.0.0.1` as a `host` is\\nrisky unless you take great care to run this webhook on all hosts\\nwhich run an apiserver which might need to make calls to this\\nwebhook. Such installs are likely to be non-portable, i.e., not easy\\nto turn up in a new cluster.\\n\\n\\nThe scheme must be \\\"https\\\"; the URL must begin with \\\"https://\\\".\\n\\n\\nA path is optional, and if present may be any string permissible in\\na URL. You may use the path to pass an arbitrary string to the\\nwebhook, for example, a cluster identifier.\\n\\n\\nAttempting to use a user or basic auth e.g. \\\"user:password@\\\" is not\\nallowed. Fragments (\\\"#...\\\") and query parameters (\\\"?...\\\") are not\\nallowed, either.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"conversionReviewVersions\": {\n \"description\": \"conversionReviewVersions is an ordered list of preferred `ConversionReview`\\nversions the Webhook expects. The API server will use the first version in\\nthe list which it supports. If none of the versions specified in this list\\nare supported by API server, conversion will fail for the custom resource.\\nIf a persisted Webhook configuration specifies allowed versions and does not\\ninclude any versions known to the API Server, calls to the webhook will fail.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"conversionReviewVersions\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"strategy\"\n ],\n \"type\": \"object\"\n },\n \"defaultCompositeDeletePolicy\": {\n \"default\": \"Background\",\n \"description\": \"DefaultCompositeDeletePolicy is the policy used when deleting the Composite\\nthat is associated with the Claim if no policy has been specified.\",\n \"enum\": [\n \"Background\",\n \"Foreground\"\n ],\n \"type\": \"string\"\n },\n \"defaultCompositionRef\": {\n \"description\": \"DefaultCompositionRef refers to the Composition resource that will be used\\nin case no composition selector is given.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Composition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"defaultCompositionUpdatePolicy\": {\n \"default\": \"Automatic\",\n \"description\": \"DefaultCompositionUpdatePolicy is the policy used when updating composites after a new\\nComposition Revision has been created if no policy has been specified on the composite.\",\n \"enum\": [\n \"Automatic\",\n \"Manual\"\n ],\n \"type\": \"string\"\n },\n \"enforcedCompositionRef\": {\n \"description\": \"EnforcedCompositionRef refers to the Composition resource that will be used\\nby all composite instances whose schema is defined by this definition.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Composition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"Value is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n },\n \"group\": {\n \"description\": \"Group specifies the API group of the defined composite resource.\\nComposite resources are served under `/apis/\\u003cgroup\\u003e/...`. Must match the\\nname of the XRD (in the form `\\u003cnames.plural\\u003e.\\u003cgroup\\u003e`).\",\n \"type\": \"string\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"Value is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n },\n \"metadata\": {\n \"description\": \"Metadata specifies the desired metadata for the defined composite resource and claim CRD's.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\\nand services.\\nThese labels are added to the composite resource and claim CRD's in addition\\nto any labels defined by `CompositionResourceDefinition` `metadata.labels`.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"names\": {\n \"description\": \"Names specifies the resource and kind names of the defined composite\\nresource.\",\n \"properties\": {\n \"categories\": {\n \"description\": \"categories is a list of grouped resources this custom resource belongs to (e.g. 'all').\\nThis is published in API discovery documents, and used by clients to support invocations like\\n`kubectl get all`.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"kind\": {\n \"description\": \"kind is the serialized kind of the resource. It is normally CamelCase and singular.\\nCustom resource instances will use this value as the `kind` attribute in API calls.\",\n \"type\": \"string\"\n },\n \"listKind\": {\n \"description\": \"listKind is the serialized kind of the list for this resource. Defaults to \\\"`kind`List\\\".\",\n \"type\": \"string\"\n },\n \"plural\": {\n \"description\": \"plural is the plural name of the resource to serve.\\nThe custom resources are served under `/apis/\\u003cgroup\\u003e/\\u003cversion\\u003e/.../\\u003cplural\\u003e`.\\nMust match the name of the CustomResourceDefinition (in the form `\\u003cnames.plural\\u003e.\\u003cgroup\\u003e`).\\nMust be all lowercase.\",\n \"type\": \"string\"\n },\n \"shortNames\": {\n \"description\": \"shortNames are short names for the resource, exposed in API discovery documents,\\nand used by clients to support invocations like `kubectl get \\u003cshortname\\u003e`.\\nIt must be all lowercase.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"singular\": {\n \"description\": \"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"plural\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"Value is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n },\n \"versions\": {\n \"description\": \"Versions is the list of all API versions of the defined composite\\nresource. Version names are used to compute the order in which served\\nversions are listed in API discovery. If the version string is\\n\\\"kube-like\\\", it will sort above non \\\"kube-like\\\" version strings, which\\nare ordered lexicographically. \\\"Kube-like\\\" versions start with a \\\"v\\\",\\nthen are followed by a number (the major version), then optionally the\\nstring \\\"alpha\\\" or \\\"beta\\\" and another number (the minor version). These\\nare sorted first by GA \\u003e beta \\u003e alpha (where GA is a version with no\\nsuffix such as beta or alpha), and then by comparing major version, then\\nminor version. An example sorted list of versions: v10, v2, v1, v11beta2,\\nv10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.\",\n \"items\": {\n \"description\": \"CompositeResourceDefinitionVersion describes a version of an XR.\",\n \"properties\": {\n \"additionalPrinterColumns\": {\n \"description\": \"AdditionalPrinterColumns specifies additional columns returned in Table\\noutput. If no columns are specified, a single column displaying the age\\nof the custom resource is used. See the following link for details:\\nhttps://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables\",\n \"items\": {\n \"description\": \"CustomResourceColumnDefinition specifies a column for server side printing.\",\n \"properties\": {\n \"description\": {\n \"description\": \"description is a human readable description of this column.\",\n \"type\": \"string\"\n },\n \"format\": {\n \"description\": \"format is an optional OpenAPI type definition for this column. The 'name' format is applied\\nto the primary identifier column to assist in clients identifying column is the resource name.\\nSee https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.\",\n \"type\": \"string\"\n },\n \"jsonPath\": {\n \"description\": \"jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against\\neach custom resource to produce the value for this column.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name is a human readable name for the column.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"priority is an integer defining the relative importance of this column compared to others. Lower\\nnumbers are considered higher priority. Columns that may be omitted in limited space scenarios\\nshould be given a priority greater than 0.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"type is an OpenAPI type definition for this column.\\nSee https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"jsonPath\",\n \"name\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"deprecated\": {\n \"description\": \"The deprecated field specifies that this version is deprecated and should\\nnot be used.\",\n \"type\": \"boolean\"\n },\n \"deprecationWarning\": {\n \"description\": \"DeprecationWarning specifies the message that should be shown to the user\\nwhen using this version.\",\n \"maxLength\": 256,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this version, e.g. “v1”, “v2beta1”, etc. Composite resources are\\nserved under this version at `/apis/\\u003cgroup\\u003e/\\u003cversion\\u003e/...` if `served` is\\ntrue.\",\n \"type\": \"string\"\n },\n \"referenceable\": {\n \"description\": \"Referenceable specifies that this version may be referenced by a\\nComposition in order to configure which resources an XR may be composed\\nof. Exactly one version must be marked as referenceable; all Compositions\\nmust target only the referenceable version. The referenceable version\\nmust be served. It's mapped to the CRD's `spec.versions[*].storage` field.\",\n \"type\": \"boolean\"\n },\n \"schema\": {\n \"description\": \"Schema describes the schema used for validation, pruning, and defaulting\\nof this version of the defined composite resource. Fields required by all\\ncomposite resources will be injected into this schema automatically, and\\nwill override equivalently named fields in this schema. Omitting this\\nschema results in a schema that contains only the fields required by all\\ncomposite resources.\",\n \"properties\": {\n \"openAPIV3Schema\": {\n \"description\": \"OpenAPIV3Schema is the OpenAPI v3 schema to use for validation and\\npruning.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"served\": {\n \"description\": \"Served specifies that this version should be served via REST APIs.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"name\",\n \"referenceable\",\n \"served\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"group\",\n \"names\",\n \"versions\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Composite Resource Definition\",\n \"type\": \"object\"\n}", + "version": "apiextensions.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Composite Resource Definition", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Composition.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Composition.json new file mode 100644 index 00000000000..088a309b0aa --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Composition.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Composition", + "schema": "{\n \"description\": \"A Composition defines a collection of managed resources or functions that\\nCrossplane uses to create and manage new composite resources.\\n\\n\\nRead the Crossplane documentation for\\n[more information about Compositions](https://docs.crossplane.io/latest/concepts/compositions).\",\n \"properties\": {\n \"spec\": {\n \"description\": \"CompositionSpec specifies desired state of a composition.\",\n \"properties\": {\n \"compositeTypeRef\": {\n \"description\": \"CompositeTypeRef specifies the type of composite resource that this\\ncomposition is compatible with.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the type.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"Value is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n },\n \"environment\": {\n \"description\": \"Environment configures the environment in which resources are rendered.\\n\\n\\nTHIS IS AN ALPHA FIELD. Do not use it in production. It is not honored\\nunless the relevant Crossplane feature flag is enabled, and may be\\nchanged or removed without notice.\",\n \"properties\": {\n \"defaultData\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"DefaultData statically defines the initial state of the environment.\\nIt has the same schema-less structure as the data field in\\nenvironment configs.\\nIt is overwritten by the selected environment configs.\",\n \"type\": \"object\"\n },\n \"environmentConfigs\": {\n \"description\": \"EnvironmentConfigs selects a list of `EnvironmentConfig`s. The resolved\\nresources are stored in the composite resource at\\n`spec.environmentConfigRefs` and is only updated if it is null.\\n\\n\\nThe list of references is used to compute an in-memory environment at\\ncompose time. The data of all object is merged in the order they are\\nlisted, meaning the values of EnvironmentConfigs with a larger index take\\npriority over ones with smaller indices.\\n\\n\\nThe computed environment can be accessed in a composition using\\n`FromEnvironmentFieldPath` and `CombineFromEnvironment` patches.\",\n \"items\": {\n \"description\": \"EnvironmentSource selects a EnvironmentConfig resource.\",\n \"properties\": {\n \"ref\": {\n \"description\": \"Ref is a named reference to a single EnvironmentConfig.\\nEither Ref or Selector is required.\",\n \"properties\": {\n \"name\": {\n \"description\": \"The name of the object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"Selector selects EnvironmentConfig(s) via labels.\",\n \"properties\": {\n \"matchLabels\": {\n \"description\": \"MatchLabels ensures an object with matching labels is selected.\",\n \"items\": {\n \"description\": \"An EnvironmentSourceSelectorLabelMatcher acts like a k8s label selector but\\ncan draw the label value from a different path.\",\n \"properties\": {\n \"fromFieldPathPolicy\": {\n \"default\": \"Required\",\n \"description\": \"FromFieldPathPolicy specifies the policy for the valueFromFieldPath.\\nThe default is Required, meaning that an error will be returned if the\\nfield is not found in the composite resource.\\nOptional means that if the field is not found in the composite resource,\\nthat label pair will just be skipped. N.B. other specified label\\nmatchers will still be used to retrieve the desired\\nenvironment config, if any.\",\n \"enum\": [\n \"Optional\",\n \"Required\"\n ],\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key of the label to match.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"FromCompositeFieldPath\",\n \"description\": \"Type specifies where the value for a label comes from.\",\n \"enum\": [\n \"FromCompositeFieldPath\",\n \"Value\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value specifies a literal label value.\",\n \"type\": \"string\"\n },\n \"valueFromFieldPath\": {\n \"description\": \"ValueFromFieldPath specifies the field path to look for the label value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"maxMatch\": {\n \"description\": \"MaxMatch specifies the number of extracted EnvironmentConfigs in Multiple mode, extracts all if nil.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"minMatch\": {\n \"description\": \"MinMatch specifies the required minimum of extracted EnvironmentConfigs in Multiple mode.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"mode\": {\n \"default\": \"Single\",\n \"description\": \"Mode specifies retrieval strategy: \\\"Single\\\" or \\\"Multiple\\\".\",\n \"enum\": [\n \"Single\",\n \"Multiple\"\n ],\n \"type\": \"string\"\n },\n \"sortByFieldPath\": {\n \"default\": \"metadata.name\",\n \"description\": \"SortByFieldPath is the path to the field based on which list of EnvironmentConfigs is alphabetically sorted.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"Reference\",\n \"description\": \"Type specifies the way the EnvironmentConfig is selected.\\nDefault is `Reference`\",\n \"enum\": [\n \"Reference\",\n \"Selector\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"patches\": {\n \"description\": \"Patches is a list of environment patches that are executed before a\\ncomposition's resources are composed.\",\n \"items\": {\n \"description\": \"EnvironmentPatch is a patch for a Composition environment.\",\n \"properties\": {\n \"combine\": {\n \"description\": \"Combine is the patch configuration for a CombineFromComposite or\\nCombineToComposite patch.\",\n \"properties\": {\n \"strategy\": {\n \"description\": \"Strategy defines the strategy to use to combine the input variable values.\\nCurrently only string is supported.\",\n \"enum\": [\n \"string\"\n ],\n \"type\": \"string\"\n },\n \"string\": {\n \"description\": \"String declares that input variables should be combined into a single\\nstring, using the relevant settings for formatting purposes.\",\n \"properties\": {\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fmt\"\n ],\n \"type\": \"object\"\n },\n \"variables\": {\n \"description\": \"Variables are the list of variables whose values will be retrieved and\\ncombined.\",\n \"items\": {\n \"description\": \"A CombineVariable defines the source of a value that is combined with\\nothers to form and patch an output value. Currently, this only supports\\nretrieving values from a field path.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the source whose value is\\nto be used as input.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fromFieldPath\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"strategy\",\n \"variables\"\n ],\n \"type\": \"object\"\n },\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the resource whose value is\\nto be used as input. Required when type is FromCompositeFieldPath or\\nToCompositeFieldPath.\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"Policy configures the specifics of patching behaviour.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath specifies how to patch from a field path. The default is\\n'Optional', which means the patch will be a no-op if the specified\\nfromFieldPath does not exist. Use 'Required' if the patch should fail if\\nthe specified path does not exist.\",\n \"enum\": [\n \"Optional\",\n \"Required\"\n ],\n \"type\": \"string\"\n },\n \"mergeOptions\": {\n \"description\": \"MergeOptions Specifies merge options on a field path.\",\n \"properties\": {\n \"appendSlice\": {\n \"description\": \"Specifies that already existing elements in a merged slice should be preserved\",\n \"type\": \"boolean\"\n },\n \"keepMapValues\": {\n \"description\": \"Specifies that already existing values in a merged map should be preserved\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"toFieldPath\": {\n \"description\": \"ToFieldPath is the path of the field on the resource whose value will\\nbe changed with the result of transforms. Leave empty if you'd like to\\npropagate to the same path as fromFieldPath.\",\n \"type\": \"string\"\n },\n \"transforms\": {\n \"description\": \"Transforms are the list of functions that are used as a FIFO pipe for the\\ninput to be transformed.\",\n \"items\": {\n \"description\": \"Transform is a unit of process whose input is transformed into an output with\\nthe supplied configuration.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Convert is used to cast the input into the given output type.\",\n \"properties\": {\n \"format\": {\n \"description\": \"The expected input format.\\n\\n\\n* `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity).\\nOnly used during `string -\\u003e float64` conversions.\\n* `json` - parses the input as a JSON string.\\nOnly used during `string -\\u003e object` or `string -\\u003e list` conversions.\\n\\n\\nIf this property is null, the default conversion is applied.\",\n \"enum\": [\n \"none\",\n \"quantity\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"toType\": {\n \"description\": \"ToType is the type of the output of this transform.\",\n \"enum\": [\n \"string\",\n \"int\",\n \"int64\",\n \"bool\",\n \"float64\",\n \"object\",\n \"array\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"toType\"\n ],\n \"type\": \"object\"\n },\n \"map\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"Map uses the input as a key in the given map and returns the value.\",\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Match is a more complex version of Map that matches a list of patterns.\",\n \"properties\": {\n \"fallbackTo\": {\n \"default\": \"Value\",\n \"description\": \"Determines to what value the transform should fallback if no pattern matches.\",\n \"enum\": [\n \"Value\",\n \"Input\"\n ],\n \"type\": \"string\"\n },\n \"fallbackValue\": {\n \"description\": \"The fallback value that should be returned by the transform if now pattern\\nmatches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"patterns\": {\n \"description\": \"The patterns that should be tested against the input string.\\nPatterns are tested in order. The value of the first match is used as\\nresult of this transform.\",\n \"items\": {\n \"description\": \"MatchTransformPattern is a transform that returns the value that matches a\\npattern.\",\n \"properties\": {\n \"literal\": {\n \"description\": \"Literal exactly matches the input string (case sensitive).\\nIs required if `type` is `literal`.\",\n \"type\": \"string\"\n },\n \"regexp\": {\n \"description\": \"Regexp to match against the input string.\\nIs required if `type` is `regexp`.\",\n \"type\": \"string\"\n },\n \"result\": {\n \"description\": \"The value that is used as result of the transform if the pattern matches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"literal\",\n \"description\": \"Type specifies how the pattern matches the input.\\n\\n\\n* `literal` - the pattern value has to exactly match (case sensitive) the\\ninput string. This is the default.\\n\\n\\n* `regexp` - the pattern treated as a regular expression against\\nwhich the input string is tested. Crossplane will throw an error if the\\nkey is not a valid regexp.\",\n \"enum\": [\n \"literal\",\n \"regexp\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"result\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"math\": {\n \"description\": \"Math is used to transform the input via mathematical operations such as\\nmultiplication.\",\n \"properties\": {\n \"clampMax\": {\n \"description\": \"ClampMax makes sure that the value is not bigger than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"clampMin\": {\n \"description\": \"ClampMin makes sure that the value is not smaller than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"multiply\": {\n \"description\": \"Multiply the value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"default\": \"Multiply\",\n \"description\": \"Type of the math transform to be run.\",\n \"enum\": [\n \"Multiply\",\n \"ClampMin\",\n \"ClampMax\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"string\": {\n \"description\": \"String is used to transform the input into a string or a different kind\\nof string. Note that the input does not necessarily need to be a string.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Optional conversion method to be specified.\\n`ToUpper` and `ToLower` change the letter case of the input string.\\n`ToBase64` and `FromBase64` perform a base64 conversion based on the input string.\\n`ToJson` converts any input value into its raw JSON representation.\\n`ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input\\nconverted to JSON.\\n`ToAdler32` generate a addler32 hash based on the input string.\",\n \"enum\": [\n \"ToUpper\",\n \"ToLower\",\n \"ToBase64\",\n \"FromBase64\",\n \"ToJson\",\n \"ToSha1\",\n \"ToSha256\",\n \"ToSha512\",\n \"ToAdler32\"\n ],\n \"type\": \"string\"\n },\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n },\n \"join\": {\n \"description\": \"Join defines parameters to join a slice of values to a string.\",\n \"properties\": {\n \"separator\": {\n \"description\": \"Separator defines the character that should separate the values from each\\nother in the joined string.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"separator\"\n ],\n \"type\": \"object\"\n },\n \"regexp\": {\n \"description\": \"Extract a match from the input using a regular expression.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group number to match. 0 (the default) matches the entire expression.\",\n \"type\": \"integer\"\n },\n \"match\": {\n \"description\": \"Match string. May optionally include submatches, aka capture groups.\\nSee https://pkg.go.dev/regexp/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"match\"\n ],\n \"type\": \"object\"\n },\n \"trim\": {\n \"description\": \"Trim the prefix or suffix from the input\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"Format\",\n \"description\": \"Type of the string transform to be run.\",\n \"enum\": [\n \"Format\",\n \"Convert\",\n \"TrimPrefix\",\n \"TrimSuffix\",\n \"Regexp\",\n \"Join\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of the transform to be run.\",\n \"enum\": [\n \"map\",\n \"match\",\n \"math\",\n \"string\",\n \"convert\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"default\": \"FromCompositeFieldPath\",\n \"description\": \"Type sets the patching behaviour to be used. Each patch type may require\\nits own fields to be set on the Patch object.\",\n \"enum\": [\n \"FromCompositeFieldPath\",\n \"ToCompositeFieldPath\",\n \"CombineFromComposite\",\n \"CombineToComposite\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"policy\": {\n \"description\": \"Policy represents the Resolve and Resolution policies which apply to\\nall EnvironmentSourceReferences in EnvironmentConfigs list.\",\n \"properties\": {\n \"resolution\": {\n \"default\": \"Required\",\n \"description\": \"Resolution specifies whether resolution of this reference is required.\\nThe default is 'Required', which means the reconcile will fail if the\\nreference cannot be resolved. 'Optional' means this reference will be\\na no-op if it cannot be resolved.\",\n \"enum\": [\n \"Required\",\n \"Optional\"\n ],\n \"type\": \"string\"\n },\n \"resolve\": {\n \"description\": \"Resolve specifies when this reference should be resolved. The default\\nis 'IfNotPresent', which will attempt to resolve the reference only when\\nthe corresponding field is not present. Use 'Always' to resolve the\\nreference on every reconcile.\",\n \"enum\": [\n \"Always\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"default\": \"Resources\",\n \"description\": \"Mode controls what type or \\\"mode\\\" of Composition will be used.\\n\\n\\n\\\"Pipeline\\\" indicates that a Composition specifies a pipeline of\\nComposition Functions, each of which is responsible for producing\\ncomposed resources that Crossplane should create or update.\\n\\n\\n\\\"Resources\\\" indicates that a Composition uses what is commonly referred\\nto as \\\"Patch \\u0026 Transform\\\" or P\\u0026T composition. This mode of Composition\\nuses an array of resources, each a template for a composed resource.\\n\\n\\nAll Compositions should use Pipeline mode. Resources mode is deprecated.\\nResources mode won't be removed in Crossplane 1.x, and will remain the\\ndefault to avoid breaking legacy Compositions. However, it's no longer\\naccepting new features, and only accepting security related bug fixes.\",\n \"enum\": [\n \"Resources\",\n \"Pipeline\"\n ],\n \"type\": \"string\"\n },\n \"patchSets\": {\n \"description\": \"PatchSets define a named set of patches that may be included by any\\nresource in this Composition. PatchSets cannot themselves refer to other\\nPatchSets.\\n\\n\\nPatchSets are only used by the \\\"Resources\\\" mode of Composition. They\\nare ignored by other modes.\\n\\n\\nDeprecated: Use Composition Functions instead.\",\n \"items\": {\n \"description\": \"A PatchSet is a set of patches that can be reused from all resources within\\na Composition.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of this PatchSet.\",\n \"type\": \"string\"\n },\n \"patches\": {\n \"description\": \"Patches will be applied as an overlay to the base resource.\",\n \"items\": {\n \"description\": \"Patch objects are applied between composite and composed resources. Their\\nbehaviour depends on the Type selected. The default Type,\\nFromCompositeFieldPath, copies a value from the composite resource to\\nthe composed resource, applying any defined transformers.\",\n \"properties\": {\n \"combine\": {\n \"description\": \"Combine is the patch configuration for a CombineFromComposite,\\nCombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.\",\n \"properties\": {\n \"strategy\": {\n \"description\": \"Strategy defines the strategy to use to combine the input variable values.\\nCurrently only string is supported.\",\n \"enum\": [\n \"string\"\n ],\n \"type\": \"string\"\n },\n \"string\": {\n \"description\": \"String declares that input variables should be combined into a single\\nstring, using the relevant settings for formatting purposes.\",\n \"properties\": {\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fmt\"\n ],\n \"type\": \"object\"\n },\n \"variables\": {\n \"description\": \"Variables are the list of variables whose values will be retrieved and\\ncombined.\",\n \"items\": {\n \"description\": \"A CombineVariable defines the source of a value that is combined with\\nothers to form and patch an output value. Currently, this only supports\\nretrieving values from a field path.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the source whose value is\\nto be used as input.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fromFieldPath\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"strategy\",\n \"variables\"\n ],\n \"type\": \"object\"\n },\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the resource whose value is\\nto be used as input. Required when type is FromCompositeFieldPath,\\nFromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath.\",\n \"type\": \"string\"\n },\n \"patchSetName\": {\n \"description\": \"PatchSetName to include patches from. Required when type is PatchSet.\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"Policy configures the specifics of patching behaviour.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath specifies how to patch from a field path. The default is\\n'Optional', which means the patch will be a no-op if the specified\\nfromFieldPath does not exist. Use 'Required' if the patch should fail if\\nthe specified path does not exist.\",\n \"enum\": [\n \"Optional\",\n \"Required\"\n ],\n \"type\": \"string\"\n },\n \"mergeOptions\": {\n \"description\": \"MergeOptions Specifies merge options on a field path.\",\n \"properties\": {\n \"appendSlice\": {\n \"description\": \"Specifies that already existing elements in a merged slice should be preserved\",\n \"type\": \"boolean\"\n },\n \"keepMapValues\": {\n \"description\": \"Specifies that already existing values in a merged map should be preserved\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"toFieldPath\": {\n \"description\": \"ToFieldPath is the path of the field on the resource whose value will\\nbe changed with the result of transforms. Leave empty if you'd like to\\npropagate to the same path as fromFieldPath.\",\n \"type\": \"string\"\n },\n \"transforms\": {\n \"description\": \"Transforms are the list of functions that are used as a FIFO pipe for the\\ninput to be transformed.\",\n \"items\": {\n \"description\": \"Transform is a unit of process whose input is transformed into an output with\\nthe supplied configuration.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Convert is used to cast the input into the given output type.\",\n \"properties\": {\n \"format\": {\n \"description\": \"The expected input format.\\n\\n\\n* `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity).\\nOnly used during `string -\\u003e float64` conversions.\\n* `json` - parses the input as a JSON string.\\nOnly used during `string -\\u003e object` or `string -\\u003e list` conversions.\\n\\n\\nIf this property is null, the default conversion is applied.\",\n \"enum\": [\n \"none\",\n \"quantity\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"toType\": {\n \"description\": \"ToType is the type of the output of this transform.\",\n \"enum\": [\n \"string\",\n \"int\",\n \"int64\",\n \"bool\",\n \"float64\",\n \"object\",\n \"array\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"toType\"\n ],\n \"type\": \"object\"\n },\n \"map\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"Map uses the input as a key in the given map and returns the value.\",\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Match is a more complex version of Map that matches a list of patterns.\",\n \"properties\": {\n \"fallbackTo\": {\n \"default\": \"Value\",\n \"description\": \"Determines to what value the transform should fallback if no pattern matches.\",\n \"enum\": [\n \"Value\",\n \"Input\"\n ],\n \"type\": \"string\"\n },\n \"fallbackValue\": {\n \"description\": \"The fallback value that should be returned by the transform if now pattern\\nmatches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"patterns\": {\n \"description\": \"The patterns that should be tested against the input string.\\nPatterns are tested in order. The value of the first match is used as\\nresult of this transform.\",\n \"items\": {\n \"description\": \"MatchTransformPattern is a transform that returns the value that matches a\\npattern.\",\n \"properties\": {\n \"literal\": {\n \"description\": \"Literal exactly matches the input string (case sensitive).\\nIs required if `type` is `literal`.\",\n \"type\": \"string\"\n },\n \"regexp\": {\n \"description\": \"Regexp to match against the input string.\\nIs required if `type` is `regexp`.\",\n \"type\": \"string\"\n },\n \"result\": {\n \"description\": \"The value that is used as result of the transform if the pattern matches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"literal\",\n \"description\": \"Type specifies how the pattern matches the input.\\n\\n\\n* `literal` - the pattern value has to exactly match (case sensitive) the\\ninput string. This is the default.\\n\\n\\n* `regexp` - the pattern treated as a regular expression against\\nwhich the input string is tested. Crossplane will throw an error if the\\nkey is not a valid regexp.\",\n \"enum\": [\n \"literal\",\n \"regexp\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"result\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"math\": {\n \"description\": \"Math is used to transform the input via mathematical operations such as\\nmultiplication.\",\n \"properties\": {\n \"clampMax\": {\n \"description\": \"ClampMax makes sure that the value is not bigger than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"clampMin\": {\n \"description\": \"ClampMin makes sure that the value is not smaller than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"multiply\": {\n \"description\": \"Multiply the value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"default\": \"Multiply\",\n \"description\": \"Type of the math transform to be run.\",\n \"enum\": [\n \"Multiply\",\n \"ClampMin\",\n \"ClampMax\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"string\": {\n \"description\": \"String is used to transform the input into a string or a different kind\\nof string. Note that the input does not necessarily need to be a string.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Optional conversion method to be specified.\\n`ToUpper` and `ToLower` change the letter case of the input string.\\n`ToBase64` and `FromBase64` perform a base64 conversion based on the input string.\\n`ToJson` converts any input value into its raw JSON representation.\\n`ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input\\nconverted to JSON.\\n`ToAdler32` generate a addler32 hash based on the input string.\",\n \"enum\": [\n \"ToUpper\",\n \"ToLower\",\n \"ToBase64\",\n \"FromBase64\",\n \"ToJson\",\n \"ToSha1\",\n \"ToSha256\",\n \"ToSha512\",\n \"ToAdler32\"\n ],\n \"type\": \"string\"\n },\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n },\n \"join\": {\n \"description\": \"Join defines parameters to join a slice of values to a string.\",\n \"properties\": {\n \"separator\": {\n \"description\": \"Separator defines the character that should separate the values from each\\nother in the joined string.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"separator\"\n ],\n \"type\": \"object\"\n },\n \"regexp\": {\n \"description\": \"Extract a match from the input using a regular expression.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group number to match. 0 (the default) matches the entire expression.\",\n \"type\": \"integer\"\n },\n \"match\": {\n \"description\": \"Match string. May optionally include submatches, aka capture groups.\\nSee https://pkg.go.dev/regexp/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"match\"\n ],\n \"type\": \"object\"\n },\n \"trim\": {\n \"description\": \"Trim the prefix or suffix from the input\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"Format\",\n \"description\": \"Type of the string transform to be run.\",\n \"enum\": [\n \"Format\",\n \"Convert\",\n \"TrimPrefix\",\n \"TrimSuffix\",\n \"Regexp\",\n \"Join\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of the transform to be run.\",\n \"enum\": [\n \"map\",\n \"match\",\n \"math\",\n \"string\",\n \"convert\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"default\": \"FromCompositeFieldPath\",\n \"description\": \"Type sets the patching behaviour to be used. Each patch type may require\\nits own fields to be set on the Patch object.\",\n \"enum\": [\n \"FromCompositeFieldPath\",\n \"FromEnvironmentFieldPath\",\n \"PatchSet\",\n \"ToCompositeFieldPath\",\n \"ToEnvironmentFieldPath\",\n \"CombineFromEnvironment\",\n \"CombineFromComposite\",\n \"CombineToComposite\",\n \"CombineToEnvironment\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\",\n \"patches\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pipeline\": {\n \"description\": \"Pipeline is a list of composition function steps that will be used when a\\ncomposite resource referring to this composition is created. One of\\nresources and pipeline must be specified - you cannot specify both.\\n\\n\\nThe Pipeline is only used by the \\\"Pipeline\\\" mode of Composition. It is\\nignored by other modes.\",\n \"items\": {\n \"description\": \"A PipelineStep in a Composition Function pipeline.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Credentials are optional credentials that the Composition Function needs.\",\n \"items\": {\n \"description\": \"FunctionCredentials are optional credentials that a Composition Function\\nneeds to run.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of this set of credentials.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"A SecretRef is a reference to a secret containing credentials that should\\nbe supplied to the function.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"source\": {\n \"description\": \"Source of the function credentials.\",\n \"enum\": [\n \"None\",\n \"Secret\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"source\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"functionRef\": {\n \"description\": \"FunctionRef is a reference to the Composition Function this step should\\nexecute.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced Function.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"input\": {\n \"description\": \"Input is an optional, arbitrary Kubernetes resource (i.e. a resource\\nwith an apiVersion and kind) that will be passed to the Composition\\nFunction as the 'input' of its RunFunctionRequest.\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"step\": {\n \"description\": \"Step name. Must be unique within its Pipeline.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"functionRef\",\n \"step\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"step\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishConnectionDetailsWithStoreConfigRef\": {\n \"default\": {\n \"name\": \"default\"\n },\n \"description\": \"PublishConnectionDetailsWithStoreConfig specifies the secret store config\\nwith which the connection details of composite resources dynamically\\nprovisioned using this composition will be published.\\n\\n\\nTHIS IS AN ALPHA FIELD. Do not use it in production. It is not honored\\nunless the relevant Crossplane feature flag is enabled, and may be\\nchanged or removed without notice.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced StoreConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources is a list of resource templates that will be used when a\\ncomposite resource referring to this composition is created.\\n\\n\\nResources are only used by the \\\"Resources\\\" mode of Composition. They are\\nignored by other modes.\\n\\n\\nDeprecated: Use Composition Functions instead.\",\n \"items\": {\n \"description\": \"ComposedTemplate is used to provide information about how the composed resource\\nshould be processed.\",\n \"properties\": {\n \"base\": {\n \"description\": \"Base is the target resource that the patches will be applied on.\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"connectionDetails\": {\n \"description\": \"ConnectionDetails lists the propagation secret keys from this target\\nresource to the composition instance connection secret.\",\n \"items\": {\n \"description\": \"ConnectionDetail includes the information about the propagation of the connection\\ninformation from one secret to another.\",\n \"properties\": {\n \"fromConnectionSecretKey\": {\n \"description\": \"FromConnectionSecretKey is the key that will be used to fetch the value\\nfrom the composed resource's connection secret.\",\n \"type\": \"string\"\n },\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the composed resource whose\\nvalue to be used as input. Name must be specified if the type is\\nFromFieldPath.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the connection secret key that will be propagated to the\\nconnection secret of the composition instance. Leave empty if you'd like\\nto use the same key name.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type sets the connection detail fetching behaviour to be used. Each\\nconnection detail type may require its own fields to be set on the\\nConnectionDetail object. If the type is omitted Crossplane will attempt\\nto infer it based on which other fields were specified. If multiple\\nfields are specified the order of precedence is:\\n1. FromValue\\n2. FromConnectionSecretKey\\n3. FromFieldPath\",\n \"enum\": [\n \"FromConnectionSecretKey\",\n \"FromFieldPath\",\n \"FromValue\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value that will be propagated to the connection secret of the composite\\nresource. May be set to inject a fixed, non-sensitive connection secret\\nvalue, for example a well-known port.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"A Name uniquely identifies this entry within its Composition's resources\\narray. Names are optional but *strongly* recommended. When all entries in\\nthe resources array are named entries may added, deleted, and reordered\\nas long as their names do not change. When entries are not named the\\nlength and order of the resources array should be treated as immutable.\\nEither all or no entries must be named.\",\n \"type\": \"string\"\n },\n \"patches\": {\n \"description\": \"Patches will be applied as overlay to the base resource.\",\n \"items\": {\n \"description\": \"Patch objects are applied between composite and composed resources. Their\\nbehaviour depends on the Type selected. The default Type,\\nFromCompositeFieldPath, copies a value from the composite resource to\\nthe composed resource, applying any defined transformers.\",\n \"properties\": {\n \"combine\": {\n \"description\": \"Combine is the patch configuration for a CombineFromComposite,\\nCombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.\",\n \"properties\": {\n \"strategy\": {\n \"description\": \"Strategy defines the strategy to use to combine the input variable values.\\nCurrently only string is supported.\",\n \"enum\": [\n \"string\"\n ],\n \"type\": \"string\"\n },\n \"string\": {\n \"description\": \"String declares that input variables should be combined into a single\\nstring, using the relevant settings for formatting purposes.\",\n \"properties\": {\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fmt\"\n ],\n \"type\": \"object\"\n },\n \"variables\": {\n \"description\": \"Variables are the list of variables whose values will be retrieved and\\ncombined.\",\n \"items\": {\n \"description\": \"A CombineVariable defines the source of a value that is combined with\\nothers to form and patch an output value. Currently, this only supports\\nretrieving values from a field path.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the source whose value is\\nto be used as input.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fromFieldPath\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"strategy\",\n \"variables\"\n ],\n \"type\": \"object\"\n },\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the resource whose value is\\nto be used as input. Required when type is FromCompositeFieldPath,\\nFromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath.\",\n \"type\": \"string\"\n },\n \"patchSetName\": {\n \"description\": \"PatchSetName to include patches from. Required when type is PatchSet.\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"Policy configures the specifics of patching behaviour.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath specifies how to patch from a field path. The default is\\n'Optional', which means the patch will be a no-op if the specified\\nfromFieldPath does not exist. Use 'Required' if the patch should fail if\\nthe specified path does not exist.\",\n \"enum\": [\n \"Optional\",\n \"Required\"\n ],\n \"type\": \"string\"\n },\n \"mergeOptions\": {\n \"description\": \"MergeOptions Specifies merge options on a field path.\",\n \"properties\": {\n \"appendSlice\": {\n \"description\": \"Specifies that already existing elements in a merged slice should be preserved\",\n \"type\": \"boolean\"\n },\n \"keepMapValues\": {\n \"description\": \"Specifies that already existing values in a merged map should be preserved\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"toFieldPath\": {\n \"description\": \"ToFieldPath is the path of the field on the resource whose value will\\nbe changed with the result of transforms. Leave empty if you'd like to\\npropagate to the same path as fromFieldPath.\",\n \"type\": \"string\"\n },\n \"transforms\": {\n \"description\": \"Transforms are the list of functions that are used as a FIFO pipe for the\\ninput to be transformed.\",\n \"items\": {\n \"description\": \"Transform is a unit of process whose input is transformed into an output with\\nthe supplied configuration.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Convert is used to cast the input into the given output type.\",\n \"properties\": {\n \"format\": {\n \"description\": \"The expected input format.\\n\\n\\n* `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity).\\nOnly used during `string -\\u003e float64` conversions.\\n* `json` - parses the input as a JSON string.\\nOnly used during `string -\\u003e object` or `string -\\u003e list` conversions.\\n\\n\\nIf this property is null, the default conversion is applied.\",\n \"enum\": [\n \"none\",\n \"quantity\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"toType\": {\n \"description\": \"ToType is the type of the output of this transform.\",\n \"enum\": [\n \"string\",\n \"int\",\n \"int64\",\n \"bool\",\n \"float64\",\n \"object\",\n \"array\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"toType\"\n ],\n \"type\": \"object\"\n },\n \"map\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"Map uses the input as a key in the given map and returns the value.\",\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Match is a more complex version of Map that matches a list of patterns.\",\n \"properties\": {\n \"fallbackTo\": {\n \"default\": \"Value\",\n \"description\": \"Determines to what value the transform should fallback if no pattern matches.\",\n \"enum\": [\n \"Value\",\n \"Input\"\n ],\n \"type\": \"string\"\n },\n \"fallbackValue\": {\n \"description\": \"The fallback value that should be returned by the transform if now pattern\\nmatches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"patterns\": {\n \"description\": \"The patterns that should be tested against the input string.\\nPatterns are tested in order. The value of the first match is used as\\nresult of this transform.\",\n \"items\": {\n \"description\": \"MatchTransformPattern is a transform that returns the value that matches a\\npattern.\",\n \"properties\": {\n \"literal\": {\n \"description\": \"Literal exactly matches the input string (case sensitive).\\nIs required if `type` is `literal`.\",\n \"type\": \"string\"\n },\n \"regexp\": {\n \"description\": \"Regexp to match against the input string.\\nIs required if `type` is `regexp`.\",\n \"type\": \"string\"\n },\n \"result\": {\n \"description\": \"The value that is used as result of the transform if the pattern matches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"literal\",\n \"description\": \"Type specifies how the pattern matches the input.\\n\\n\\n* `literal` - the pattern value has to exactly match (case sensitive) the\\ninput string. This is the default.\\n\\n\\n* `regexp` - the pattern treated as a regular expression against\\nwhich the input string is tested. Crossplane will throw an error if the\\nkey is not a valid regexp.\",\n \"enum\": [\n \"literal\",\n \"regexp\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"result\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"math\": {\n \"description\": \"Math is used to transform the input via mathematical operations such as\\nmultiplication.\",\n \"properties\": {\n \"clampMax\": {\n \"description\": \"ClampMax makes sure that the value is not bigger than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"clampMin\": {\n \"description\": \"ClampMin makes sure that the value is not smaller than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"multiply\": {\n \"description\": \"Multiply the value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"default\": \"Multiply\",\n \"description\": \"Type of the math transform to be run.\",\n \"enum\": [\n \"Multiply\",\n \"ClampMin\",\n \"ClampMax\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"string\": {\n \"description\": \"String is used to transform the input into a string or a different kind\\nof string. Note that the input does not necessarily need to be a string.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Optional conversion method to be specified.\\n`ToUpper` and `ToLower` change the letter case of the input string.\\n`ToBase64` and `FromBase64` perform a base64 conversion based on the input string.\\n`ToJson` converts any input value into its raw JSON representation.\\n`ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input\\nconverted to JSON.\\n`ToAdler32` generate a addler32 hash based on the input string.\",\n \"enum\": [\n \"ToUpper\",\n \"ToLower\",\n \"ToBase64\",\n \"FromBase64\",\n \"ToJson\",\n \"ToSha1\",\n \"ToSha256\",\n \"ToSha512\",\n \"ToAdler32\"\n ],\n \"type\": \"string\"\n },\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n },\n \"join\": {\n \"description\": \"Join defines parameters to join a slice of values to a string.\",\n \"properties\": {\n \"separator\": {\n \"description\": \"Separator defines the character that should separate the values from each\\nother in the joined string.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"separator\"\n ],\n \"type\": \"object\"\n },\n \"regexp\": {\n \"description\": \"Extract a match from the input using a regular expression.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group number to match. 0 (the default) matches the entire expression.\",\n \"type\": \"integer\"\n },\n \"match\": {\n \"description\": \"Match string. May optionally include submatches, aka capture groups.\\nSee https://pkg.go.dev/regexp/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"match\"\n ],\n \"type\": \"object\"\n },\n \"trim\": {\n \"description\": \"Trim the prefix or suffix from the input\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"Format\",\n \"description\": \"Type of the string transform to be run.\",\n \"enum\": [\n \"Format\",\n \"Convert\",\n \"TrimPrefix\",\n \"TrimSuffix\",\n \"Regexp\",\n \"Join\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of the transform to be run.\",\n \"enum\": [\n \"map\",\n \"match\",\n \"math\",\n \"string\",\n \"convert\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"default\": \"FromCompositeFieldPath\",\n \"description\": \"Type sets the patching behaviour to be used. Each patch type may require\\nits own fields to be set on the Patch object.\",\n \"enum\": [\n \"FromCompositeFieldPath\",\n \"FromEnvironmentFieldPath\",\n \"PatchSet\",\n \"ToCompositeFieldPath\",\n \"ToEnvironmentFieldPath\",\n \"CombineFromEnvironment\",\n \"CombineFromComposite\",\n \"CombineToComposite\",\n \"CombineToEnvironment\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessChecks\": {\n \"default\": [\n {\n \"matchCondition\": {\n \"status\": \"True\",\n \"type\": \"Ready\"\n },\n \"type\": \"MatchCondition\"\n }\n ],\n \"description\": \"ReadinessChecks allows users to define custom readiness checks. All checks\\nhave to return true in order for resource to be considered ready. The\\ndefault readiness check is to have the \\\"Ready\\\" condition to be \\\"True\\\".\",\n \"items\": {\n \"description\": \"ReadinessCheck is used to indicate how to tell whether a resource is ready\\nfor consumption.\",\n \"properties\": {\n \"fieldPath\": {\n \"description\": \"FieldPath shows the path of the field whose value will be used.\",\n \"type\": \"string\"\n },\n \"matchCondition\": {\n \"description\": \"MatchCondition specifies the condition you'd like to match if you're using \\\"MatchCondition\\\" type.\",\n \"properties\": {\n \"status\": {\n \"default\": \"True\",\n \"description\": \"Status is the status of the condition you'd like to match.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"Ready\",\n \"description\": \"Type indicates the type of condition you'd like to use.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"matchInteger\": {\n \"description\": \"MatchInt is the value you'd like to match if you're using \\\"MatchInt\\\" type.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"matchString\": {\n \"description\": \"MatchString is the value you'd like to match if you're using \\\"MatchString\\\" type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of probe you'd like to use.\",\n \"enum\": [\n \"MatchString\",\n \"MatchInteger\",\n \"NonEmpty\",\n \"MatchCondition\",\n \"MatchTrue\",\n \"MatchFalse\",\n \"None\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"base\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"writeConnectionSecretsToNamespace\": {\n \"description\": \"WriteConnectionSecretsToNamespace specifies the namespace in which the\\nconnection secrets of composite resource dynamically provisioned using\\nthis composition will be created.\\nThis field is planned to be replaced in a future release in favor of\\nPublishConnectionDetailsWithStoreConfigRef. Currently, both could be\\nset independently and connection details would be published to both\\nwithout affecting each other as long as related fields at MR level\\nspecified.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"compositeTypeRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Composition\",\n \"type\": \"object\"\n}", + "version": "apiextensions.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Composition", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/CompositionRevision.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/CompositionRevision.json new file mode 100644 index 00000000000..aa0d3d2e2d5 --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/CompositionRevision.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "CompositionRevision", + "schema": "{\n \"description\": \"A CompositionRevision represents a revision of a Composition. Crossplane\\ncreates new revisions when there are changes to the Composition.\\n\\n\\nCrossplane creates and manages CompositionRevisions. Don't directly edit\\nCompositionRevisions.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"CompositionRevisionSpec specifies the desired state of the composition\\nrevision.\",\n \"properties\": {\n \"compositeTypeRef\": {\n \"description\": \"CompositeTypeRef specifies the type of composite resource that this\\ncomposition is compatible with.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the type.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"Value is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n },\n \"environment\": {\n \"description\": \"Environment configures the environment in which resources are rendered.\\n\\n\\nTHIS IS AN ALPHA FIELD. Do not use it in production. It is not honored\\nunless the relevant Crossplane feature flag is enabled, and may be\\nchanged or removed without notice.\",\n \"properties\": {\n \"defaultData\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"DefaultData statically defines the initial state of the environment.\\nIt has the same schema-less structure as the data field in\\nenvironment configs.\\nIt is overwritten by the selected environment configs.\",\n \"type\": \"object\"\n },\n \"environmentConfigs\": {\n \"description\": \"EnvironmentConfigs selects a list of `EnvironmentConfig`s. The resolved\\nresources are stored in the composite resource at\\n`spec.environmentConfigRefs` and is only updated if it is null.\\n\\n\\nThe list of references is used to compute an in-memory environment at\\ncompose time. The data of all object is merged in the order they are\\nlisted, meaning the values of EnvironmentConfigs with a larger index take\\npriority over ones with smaller indices.\\n\\n\\nThe computed environment can be accessed in a composition using\\n`FromEnvironmentFieldPath` and `CombineFromEnvironment` patches.\",\n \"items\": {\n \"description\": \"EnvironmentSource selects a EnvironmentConfig resource.\",\n \"properties\": {\n \"ref\": {\n \"description\": \"Ref is a named reference to a single EnvironmentConfig.\\nEither Ref or Selector is required.\",\n \"properties\": {\n \"name\": {\n \"description\": \"The name of the object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"Selector selects EnvironmentConfig(s) via labels.\",\n \"properties\": {\n \"matchLabels\": {\n \"description\": \"MatchLabels ensures an object with matching labels is selected.\",\n \"items\": {\n \"description\": \"An EnvironmentSourceSelectorLabelMatcher acts like a k8s label selector but\\ncan draw the label value from a different path.\",\n \"properties\": {\n \"fromFieldPathPolicy\": {\n \"default\": \"Required\",\n \"description\": \"FromFieldPathPolicy specifies the policy for the valueFromFieldPath.\\nThe default is Required, meaning that an error will be returned if the\\nfield is not found in the composite resource.\\nOptional means that if the field is not found in the composite resource,\\nthat label pair will just be skipped. N.B. other specified label\\nmatchers will still be used to retrieve the desired\\nenvironment config, if any.\",\n \"enum\": [\n \"Optional\",\n \"Required\"\n ],\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key of the label to match.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"FromCompositeFieldPath\",\n \"description\": \"Type specifies where the value for a label comes from.\",\n \"enum\": [\n \"FromCompositeFieldPath\",\n \"Value\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value specifies a literal label value.\",\n \"type\": \"string\"\n },\n \"valueFromFieldPath\": {\n \"description\": \"ValueFromFieldPath specifies the field path to look for the label value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"maxMatch\": {\n \"description\": \"MaxMatch specifies the number of extracted EnvironmentConfigs in Multiple mode, extracts all if nil.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"minMatch\": {\n \"description\": \"MinMatch specifies the required minimum of extracted EnvironmentConfigs in Multiple mode.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"mode\": {\n \"default\": \"Single\",\n \"description\": \"Mode specifies retrieval strategy: \\\"Single\\\" or \\\"Multiple\\\".\",\n \"enum\": [\n \"Single\",\n \"Multiple\"\n ],\n \"type\": \"string\"\n },\n \"sortByFieldPath\": {\n \"default\": \"metadata.name\",\n \"description\": \"SortByFieldPath is the path to the field based on which list of EnvironmentConfigs is alphabetically sorted.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"Reference\",\n \"description\": \"Type specifies the way the EnvironmentConfig is selected.\\nDefault is `Reference`\",\n \"enum\": [\n \"Reference\",\n \"Selector\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"patches\": {\n \"description\": \"Patches is a list of environment patches that are executed before a\\ncomposition's resources are composed.\",\n \"items\": {\n \"description\": \"EnvironmentPatch is a patch for a Composition environment.\",\n \"properties\": {\n \"combine\": {\n \"description\": \"Combine is the patch configuration for a CombineFromComposite or\\nCombineToComposite patch.\",\n \"properties\": {\n \"strategy\": {\n \"description\": \"Strategy defines the strategy to use to combine the input variable values.\\nCurrently only string is supported.\",\n \"enum\": [\n \"string\"\n ],\n \"type\": \"string\"\n },\n \"string\": {\n \"description\": \"String declares that input variables should be combined into a single\\nstring, using the relevant settings for formatting purposes.\",\n \"properties\": {\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fmt\"\n ],\n \"type\": \"object\"\n },\n \"variables\": {\n \"description\": \"Variables are the list of variables whose values will be retrieved and\\ncombined.\",\n \"items\": {\n \"description\": \"A CombineVariable defines the source of a value that is combined with\\nothers to form and patch an output value. Currently, this only supports\\nretrieving values from a field path.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the source whose value is\\nto be used as input.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fromFieldPath\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"strategy\",\n \"variables\"\n ],\n \"type\": \"object\"\n },\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the resource whose value is\\nto be used as input. Required when type is FromCompositeFieldPath or\\nToCompositeFieldPath.\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"Policy configures the specifics of patching behaviour.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath specifies how to patch from a field path. The default is\\n'Optional', which means the patch will be a no-op if the specified\\nfromFieldPath does not exist. Use 'Required' if the patch should fail if\\nthe specified path does not exist.\",\n \"enum\": [\n \"Optional\",\n \"Required\"\n ],\n \"type\": \"string\"\n },\n \"mergeOptions\": {\n \"description\": \"MergeOptions Specifies merge options on a field path.\",\n \"properties\": {\n \"appendSlice\": {\n \"description\": \"Specifies that already existing elements in a merged slice should be preserved\",\n \"type\": \"boolean\"\n },\n \"keepMapValues\": {\n \"description\": \"Specifies that already existing values in a merged map should be preserved\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"toFieldPath\": {\n \"description\": \"ToFieldPath is the path of the field on the resource whose value will\\nbe changed with the result of transforms. Leave empty if you'd like to\\npropagate to the same path as fromFieldPath.\",\n \"type\": \"string\"\n },\n \"transforms\": {\n \"description\": \"Transforms are the list of functions that are used as a FIFO pipe for the\\ninput to be transformed.\",\n \"items\": {\n \"description\": \"Transform is a unit of process whose input is transformed into an output with\\nthe supplied configuration.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Convert is used to cast the input into the given output type.\",\n \"properties\": {\n \"format\": {\n \"description\": \"The expected input format.\\n\\n\\n* `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity).\\nOnly used during `string -\\u003e float64` conversions.\\n* `json` - parses the input as a JSON string.\\nOnly used during `string -\\u003e object` or `string -\\u003e list` conversions.\\n\\n\\nIf this property is null, the default conversion is applied.\",\n \"enum\": [\n \"none\",\n \"quantity\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"toType\": {\n \"description\": \"ToType is the type of the output of this transform.\",\n \"enum\": [\n \"string\",\n \"int\",\n \"int64\",\n \"bool\",\n \"float64\",\n \"object\",\n \"array\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"toType\"\n ],\n \"type\": \"object\"\n },\n \"map\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"Map uses the input as a key in the given map and returns the value.\",\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Match is a more complex version of Map that matches a list of patterns.\",\n \"properties\": {\n \"fallbackTo\": {\n \"default\": \"Value\",\n \"description\": \"Determines to what value the transform should fallback if no pattern matches.\",\n \"enum\": [\n \"Value\",\n \"Input\"\n ],\n \"type\": \"string\"\n },\n \"fallbackValue\": {\n \"description\": \"The fallback value that should be returned by the transform if now pattern\\nmatches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"patterns\": {\n \"description\": \"The patterns that should be tested against the input string.\\nPatterns are tested in order. The value of the first match is used as\\nresult of this transform.\",\n \"items\": {\n \"description\": \"MatchTransformPattern is a transform that returns the value that matches a\\npattern.\",\n \"properties\": {\n \"literal\": {\n \"description\": \"Literal exactly matches the input string (case sensitive).\\nIs required if `type` is `literal`.\",\n \"type\": \"string\"\n },\n \"regexp\": {\n \"description\": \"Regexp to match against the input string.\\nIs required if `type` is `regexp`.\",\n \"type\": \"string\"\n },\n \"result\": {\n \"description\": \"The value that is used as result of the transform if the pattern matches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"literal\",\n \"description\": \"Type specifies how the pattern matches the input.\\n\\n\\n* `literal` - the pattern value has to exactly match (case sensitive) the\\ninput string. This is the default.\\n\\n\\n* `regexp` - the pattern treated as a regular expression against\\nwhich the input string is tested. Crossplane will throw an error if the\\nkey is not a valid regexp.\",\n \"enum\": [\n \"literal\",\n \"regexp\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"result\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"math\": {\n \"description\": \"Math is used to transform the input via mathematical operations such as\\nmultiplication.\",\n \"properties\": {\n \"clampMax\": {\n \"description\": \"ClampMax makes sure that the value is not bigger than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"clampMin\": {\n \"description\": \"ClampMin makes sure that the value is not smaller than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"multiply\": {\n \"description\": \"Multiply the value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"default\": \"Multiply\",\n \"description\": \"Type of the math transform to be run.\",\n \"enum\": [\n \"Multiply\",\n \"ClampMin\",\n \"ClampMax\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"string\": {\n \"description\": \"String is used to transform the input into a string or a different kind\\nof string. Note that the input does not necessarily need to be a string.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Optional conversion method to be specified.\\n`ToUpper` and `ToLower` change the letter case of the input string.\\n`ToBase64` and `FromBase64` perform a base64 conversion based on the input string.\\n`ToJson` converts any input value into its raw JSON representation.\\n`ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input\\nconverted to JSON.\\n`ToAdler32` generate a addler32 hash based on the input string.\",\n \"enum\": [\n \"ToUpper\",\n \"ToLower\",\n \"ToBase64\",\n \"FromBase64\",\n \"ToJson\",\n \"ToSha1\",\n \"ToSha256\",\n \"ToSha512\",\n \"ToAdler32\"\n ],\n \"type\": \"string\"\n },\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n },\n \"join\": {\n \"description\": \"Join defines parameters to join a slice of values to a string.\",\n \"properties\": {\n \"separator\": {\n \"description\": \"Separator defines the character that should separate the values from each\\nother in the joined string.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"separator\"\n ],\n \"type\": \"object\"\n },\n \"regexp\": {\n \"description\": \"Extract a match from the input using a regular expression.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group number to match. 0 (the default) matches the entire expression.\",\n \"type\": \"integer\"\n },\n \"match\": {\n \"description\": \"Match string. May optionally include submatches, aka capture groups.\\nSee https://pkg.go.dev/regexp/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"match\"\n ],\n \"type\": \"object\"\n },\n \"trim\": {\n \"description\": \"Trim the prefix or suffix from the input\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"Format\",\n \"description\": \"Type of the string transform to be run.\",\n \"enum\": [\n \"Format\",\n \"Convert\",\n \"TrimPrefix\",\n \"TrimSuffix\",\n \"Regexp\",\n \"Join\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of the transform to be run.\",\n \"enum\": [\n \"map\",\n \"match\",\n \"math\",\n \"string\",\n \"convert\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"default\": \"FromCompositeFieldPath\",\n \"description\": \"Type sets the patching behaviour to be used. Each patch type may require\\nits own fields to be set on the Patch object.\",\n \"enum\": [\n \"FromCompositeFieldPath\",\n \"ToCompositeFieldPath\",\n \"CombineFromComposite\",\n \"CombineToComposite\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"policy\": {\n \"description\": \"Policy represents the Resolve and Resolution policies which apply to\\nall EnvironmentSourceReferences in EnvironmentConfigs list.\",\n \"properties\": {\n \"resolution\": {\n \"default\": \"Required\",\n \"description\": \"Resolution specifies whether resolution of this reference is required.\\nThe default is 'Required', which means the reconcile will fail if the\\nreference cannot be resolved. 'Optional' means this reference will be\\na no-op if it cannot be resolved.\",\n \"enum\": [\n \"Required\",\n \"Optional\"\n ],\n \"type\": \"string\"\n },\n \"resolve\": {\n \"description\": \"Resolve specifies when this reference should be resolved. The default\\nis 'IfNotPresent', which will attempt to resolve the reference only when\\nthe corresponding field is not present. Use 'Always' to resolve the\\nreference on every reconcile.\",\n \"enum\": [\n \"Always\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"default\": \"Resources\",\n \"description\": \"Mode controls what type or \\\"mode\\\" of Composition will be used.\\n\\n\\n\\\"Pipeline\\\" indicates that a Composition specifies a pipeline of\\nComposition Functions, each of which is responsible for producing\\ncomposed resources that Crossplane should create or update.\\n\\n\\n\\\"Resources\\\" indicates that a Composition uses what is commonly referred\\nto as \\\"Patch \\u0026 Transform\\\" or P\\u0026T composition. This mode of Composition\\nuses an array of resources, each a template for a composed resource.\\n\\n\\nAll Compositions should use Pipeline mode. Resources mode is deprecated.\\nResources mode won't be removed in Crossplane 1.x, and will remain the\\ndefault to avoid breaking legacy Compositions. However, it's no longer\\naccepting new features, and only accepting security related bug fixes.\",\n \"enum\": [\n \"Resources\",\n \"Pipeline\"\n ],\n \"type\": \"string\"\n },\n \"patchSets\": {\n \"description\": \"PatchSets define a named set of patches that may be included by any\\nresource in this Composition. PatchSets cannot themselves refer to other\\nPatchSets.\\n\\n\\nPatchSets are only used by the \\\"Resources\\\" mode of Composition. They\\nare ignored by other modes.\\n\\n\\nDeprecated: Use Composition Functions instead.\",\n \"items\": {\n \"description\": \"A PatchSet is a set of patches that can be reused from all resources within\\na Composition.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of this PatchSet.\",\n \"type\": \"string\"\n },\n \"patches\": {\n \"description\": \"Patches will be applied as an overlay to the base resource.\",\n \"items\": {\n \"description\": \"Patch objects are applied between composite and composed resources. Their\\nbehaviour depends on the Type selected. The default Type,\\nFromCompositeFieldPath, copies a value from the composite resource to\\nthe composed resource, applying any defined transformers.\",\n \"properties\": {\n \"combine\": {\n \"description\": \"Combine is the patch configuration for a CombineFromComposite,\\nCombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.\",\n \"properties\": {\n \"strategy\": {\n \"description\": \"Strategy defines the strategy to use to combine the input variable values.\\nCurrently only string is supported.\",\n \"enum\": [\n \"string\"\n ],\n \"type\": \"string\"\n },\n \"string\": {\n \"description\": \"String declares that input variables should be combined into a single\\nstring, using the relevant settings for formatting purposes.\",\n \"properties\": {\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fmt\"\n ],\n \"type\": \"object\"\n },\n \"variables\": {\n \"description\": \"Variables are the list of variables whose values will be retrieved and\\ncombined.\",\n \"items\": {\n \"description\": \"A CombineVariable defines the source of a value that is combined with\\nothers to form and patch an output value. Currently, this only supports\\nretrieving values from a field path.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the source whose value is\\nto be used as input.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fromFieldPath\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"strategy\",\n \"variables\"\n ],\n \"type\": \"object\"\n },\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the resource whose value is\\nto be used as input. Required when type is FromCompositeFieldPath,\\nFromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath.\",\n \"type\": \"string\"\n },\n \"patchSetName\": {\n \"description\": \"PatchSetName to include patches from. Required when type is PatchSet.\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"Policy configures the specifics of patching behaviour.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath specifies how to patch from a field path. The default is\\n'Optional', which means the patch will be a no-op if the specified\\nfromFieldPath does not exist. Use 'Required' if the patch should fail if\\nthe specified path does not exist.\",\n \"enum\": [\n \"Optional\",\n \"Required\"\n ],\n \"type\": \"string\"\n },\n \"mergeOptions\": {\n \"description\": \"MergeOptions Specifies merge options on a field path.\",\n \"properties\": {\n \"appendSlice\": {\n \"description\": \"Specifies that already existing elements in a merged slice should be preserved\",\n \"type\": \"boolean\"\n },\n \"keepMapValues\": {\n \"description\": \"Specifies that already existing values in a merged map should be preserved\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"toFieldPath\": {\n \"description\": \"ToFieldPath is the path of the field on the resource whose value will\\nbe changed with the result of transforms. Leave empty if you'd like to\\npropagate to the same path as fromFieldPath.\",\n \"type\": \"string\"\n },\n \"transforms\": {\n \"description\": \"Transforms are the list of functions that are used as a FIFO pipe for the\\ninput to be transformed.\",\n \"items\": {\n \"description\": \"Transform is a unit of process whose input is transformed into an output with\\nthe supplied configuration.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Convert is used to cast the input into the given output type.\",\n \"properties\": {\n \"format\": {\n \"description\": \"The expected input format.\\n\\n\\n* `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity).\\nOnly used during `string -\\u003e float64` conversions.\\n* `json` - parses the input as a JSON string.\\nOnly used during `string -\\u003e object` or `string -\\u003e list` conversions.\\n\\n\\nIf this property is null, the default conversion is applied.\",\n \"enum\": [\n \"none\",\n \"quantity\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"toType\": {\n \"description\": \"ToType is the type of the output of this transform.\",\n \"enum\": [\n \"string\",\n \"int\",\n \"int64\",\n \"bool\",\n \"float64\",\n \"object\",\n \"array\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"toType\"\n ],\n \"type\": \"object\"\n },\n \"map\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"Map uses the input as a key in the given map and returns the value.\",\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Match is a more complex version of Map that matches a list of patterns.\",\n \"properties\": {\n \"fallbackTo\": {\n \"default\": \"Value\",\n \"description\": \"Determines to what value the transform should fallback if no pattern matches.\",\n \"enum\": [\n \"Value\",\n \"Input\"\n ],\n \"type\": \"string\"\n },\n \"fallbackValue\": {\n \"description\": \"The fallback value that should be returned by the transform if now pattern\\nmatches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"patterns\": {\n \"description\": \"The patterns that should be tested against the input string.\\nPatterns are tested in order. The value of the first match is used as\\nresult of this transform.\",\n \"items\": {\n \"description\": \"MatchTransformPattern is a transform that returns the value that matches a\\npattern.\",\n \"properties\": {\n \"literal\": {\n \"description\": \"Literal exactly matches the input string (case sensitive).\\nIs required if `type` is `literal`.\",\n \"type\": \"string\"\n },\n \"regexp\": {\n \"description\": \"Regexp to match against the input string.\\nIs required if `type` is `regexp`.\",\n \"type\": \"string\"\n },\n \"result\": {\n \"description\": \"The value that is used as result of the transform if the pattern matches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"literal\",\n \"description\": \"Type specifies how the pattern matches the input.\\n\\n\\n* `literal` - the pattern value has to exactly match (case sensitive) the\\ninput string. This is the default.\\n\\n\\n* `regexp` - the pattern treated as a regular expression against\\nwhich the input string is tested. Crossplane will throw an error if the\\nkey is not a valid regexp.\",\n \"enum\": [\n \"literal\",\n \"regexp\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"result\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"math\": {\n \"description\": \"Math is used to transform the input via mathematical operations such as\\nmultiplication.\",\n \"properties\": {\n \"clampMax\": {\n \"description\": \"ClampMax makes sure that the value is not bigger than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"clampMin\": {\n \"description\": \"ClampMin makes sure that the value is not smaller than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"multiply\": {\n \"description\": \"Multiply the value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"default\": \"Multiply\",\n \"description\": \"Type of the math transform to be run.\",\n \"enum\": [\n \"Multiply\",\n \"ClampMin\",\n \"ClampMax\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"string\": {\n \"description\": \"String is used to transform the input into a string or a different kind\\nof string. Note that the input does not necessarily need to be a string.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Optional conversion method to be specified.\\n`ToUpper` and `ToLower` change the letter case of the input string.\\n`ToBase64` and `FromBase64` perform a base64 conversion based on the input string.\\n`ToJson` converts any input value into its raw JSON representation.\\n`ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input\\nconverted to JSON.\\n`ToAdler32` generate a addler32 hash based on the input string.\",\n \"enum\": [\n \"ToUpper\",\n \"ToLower\",\n \"ToBase64\",\n \"FromBase64\",\n \"ToJson\",\n \"ToSha1\",\n \"ToSha256\",\n \"ToSha512\",\n \"ToAdler32\"\n ],\n \"type\": \"string\"\n },\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n },\n \"join\": {\n \"description\": \"Join defines parameters to join a slice of values to a string.\",\n \"properties\": {\n \"separator\": {\n \"description\": \"Separator defines the character that should separate the values from each\\nother in the joined string.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"separator\"\n ],\n \"type\": \"object\"\n },\n \"regexp\": {\n \"description\": \"Extract a match from the input using a regular expression.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group number to match. 0 (the default) matches the entire expression.\",\n \"type\": \"integer\"\n },\n \"match\": {\n \"description\": \"Match string. May optionally include submatches, aka capture groups.\\nSee https://pkg.go.dev/regexp/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"match\"\n ],\n \"type\": \"object\"\n },\n \"trim\": {\n \"description\": \"Trim the prefix or suffix from the input\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"Format\",\n \"description\": \"Type of the string transform to be run.\",\n \"enum\": [\n \"Format\",\n \"Convert\",\n \"TrimPrefix\",\n \"TrimSuffix\",\n \"Regexp\",\n \"Join\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of the transform to be run.\",\n \"enum\": [\n \"map\",\n \"match\",\n \"math\",\n \"string\",\n \"convert\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"default\": \"FromCompositeFieldPath\",\n \"description\": \"Type sets the patching behaviour to be used. Each patch type may require\\nits own fields to be set on the Patch object.\",\n \"enum\": [\n \"FromCompositeFieldPath\",\n \"FromEnvironmentFieldPath\",\n \"PatchSet\",\n \"ToCompositeFieldPath\",\n \"ToEnvironmentFieldPath\",\n \"CombineFromEnvironment\",\n \"CombineFromComposite\",\n \"CombineToComposite\",\n \"CombineToEnvironment\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\",\n \"patches\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pipeline\": {\n \"description\": \"Pipeline is a list of composition function steps that will be used when a\\ncomposite resource referring to this composition is created. One of\\nresources and pipeline must be specified - you cannot specify both.\\n\\n\\nThe Pipeline is only used by the \\\"Pipeline\\\" mode of Composition. It is\\nignored by other modes.\",\n \"items\": {\n \"description\": \"A PipelineStep in a Composition Function pipeline.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Credentials are optional credentials that the Composition Function needs.\",\n \"items\": {\n \"description\": \"FunctionCredentials are optional credentials that a Composition Function\\nneeds to run.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of this set of credentials.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"A SecretRef is a reference to a secret containing credentials that should\\nbe supplied to the function.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"source\": {\n \"description\": \"Source of the function credentials.\",\n \"enum\": [\n \"None\",\n \"Secret\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"source\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"functionRef\": {\n \"description\": \"FunctionRef is a reference to the Composition Function this step should\\nexecute.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced Function.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"input\": {\n \"description\": \"Input is an optional, arbitrary Kubernetes resource (i.e. a resource\\nwith an apiVersion and kind) that will be passed to the Composition\\nFunction as the 'input' of its RunFunctionRequest.\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"step\": {\n \"description\": \"Step name. Must be unique within its Pipeline.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"functionRef\",\n \"step\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"step\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishConnectionDetailsWithStoreConfigRef\": {\n \"default\": {\n \"name\": \"default\"\n },\n \"description\": \"PublishConnectionDetailsWithStoreConfig specifies the secret store config\\nwith which the connection details of composite resources dynamically\\nprovisioned using this composition will be published.\\n\\n\\nTHIS IS AN ALPHA FIELD. Do not use it in production. It is not honored\\nunless the relevant Crossplane feature flag is enabled, and may be\\nchanged or removed without notice.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced StoreConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources is a list of resource templates that will be used when a\\ncomposite resource referring to this composition is created.\\n\\n\\nResources are only used by the \\\"Resources\\\" mode of Composition. They are\\nignored by other modes.\\n\\n\\nDeprecated: Use Composition Functions instead.\",\n \"items\": {\n \"description\": \"ComposedTemplate is used to provide information about how the composed resource\\nshould be processed.\",\n \"properties\": {\n \"base\": {\n \"description\": \"Base is the target resource that the patches will be applied on.\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"connectionDetails\": {\n \"description\": \"ConnectionDetails lists the propagation secret keys from this target\\nresource to the composition instance connection secret.\",\n \"items\": {\n \"description\": \"ConnectionDetail includes the information about the propagation of the connection\\ninformation from one secret to another.\",\n \"properties\": {\n \"fromConnectionSecretKey\": {\n \"description\": \"FromConnectionSecretKey is the key that will be used to fetch the value\\nfrom the composed resource's connection secret.\",\n \"type\": \"string\"\n },\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the composed resource whose\\nvalue to be used as input. Name must be specified if the type is\\nFromFieldPath.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the connection secret key that will be propagated to the\\nconnection secret of the composition instance. Leave empty if you'd like\\nto use the same key name.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type sets the connection detail fetching behaviour to be used. Each\\nconnection detail type may require its own fields to be set on the\\nConnectionDetail object. If the type is omitted Crossplane will attempt\\nto infer it based on which other fields were specified. If multiple\\nfields are specified the order of precedence is:\\n1. FromValue\\n2. FromConnectionSecretKey\\n3. FromFieldPath\",\n \"enum\": [\n \"FromConnectionSecretKey\",\n \"FromFieldPath\",\n \"FromValue\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value that will be propagated to the connection secret of the composite\\nresource. May be set to inject a fixed, non-sensitive connection secret\\nvalue, for example a well-known port.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"A Name uniquely identifies this entry within its Composition's resources\\narray. Names are optional but *strongly* recommended. When all entries in\\nthe resources array are named entries may added, deleted, and reordered\\nas long as their names do not change. When entries are not named the\\nlength and order of the resources array should be treated as immutable.\\nEither all or no entries must be named.\",\n \"type\": \"string\"\n },\n \"patches\": {\n \"description\": \"Patches will be applied as overlay to the base resource.\",\n \"items\": {\n \"description\": \"Patch objects are applied between composite and composed resources. Their\\nbehaviour depends on the Type selected. The default Type,\\nFromCompositeFieldPath, copies a value from the composite resource to\\nthe composed resource, applying any defined transformers.\",\n \"properties\": {\n \"combine\": {\n \"description\": \"Combine is the patch configuration for a CombineFromComposite,\\nCombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.\",\n \"properties\": {\n \"strategy\": {\n \"description\": \"Strategy defines the strategy to use to combine the input variable values.\\nCurrently only string is supported.\",\n \"enum\": [\n \"string\"\n ],\n \"type\": \"string\"\n },\n \"string\": {\n \"description\": \"String declares that input variables should be combined into a single\\nstring, using the relevant settings for formatting purposes.\",\n \"properties\": {\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fmt\"\n ],\n \"type\": \"object\"\n },\n \"variables\": {\n \"description\": \"Variables are the list of variables whose values will be retrieved and\\ncombined.\",\n \"items\": {\n \"description\": \"A CombineVariable defines the source of a value that is combined with\\nothers to form and patch an output value. Currently, this only supports\\nretrieving values from a field path.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the source whose value is\\nto be used as input.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fromFieldPath\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"strategy\",\n \"variables\"\n ],\n \"type\": \"object\"\n },\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath is the path of the field on the resource whose value is\\nto be used as input. Required when type is FromCompositeFieldPath,\\nFromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath.\",\n \"type\": \"string\"\n },\n \"patchSetName\": {\n \"description\": \"PatchSetName to include patches from. Required when type is PatchSet.\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"Policy configures the specifics of patching behaviour.\",\n \"properties\": {\n \"fromFieldPath\": {\n \"description\": \"FromFieldPath specifies how to patch from a field path. The default is\\n'Optional', which means the patch will be a no-op if the specified\\nfromFieldPath does not exist. Use 'Required' if the patch should fail if\\nthe specified path does not exist.\",\n \"enum\": [\n \"Optional\",\n \"Required\"\n ],\n \"type\": \"string\"\n },\n \"mergeOptions\": {\n \"description\": \"MergeOptions Specifies merge options on a field path.\",\n \"properties\": {\n \"appendSlice\": {\n \"description\": \"Specifies that already existing elements in a merged slice should be preserved\",\n \"type\": \"boolean\"\n },\n \"keepMapValues\": {\n \"description\": \"Specifies that already existing values in a merged map should be preserved\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"toFieldPath\": {\n \"description\": \"ToFieldPath is the path of the field on the resource whose value will\\nbe changed with the result of transforms. Leave empty if you'd like to\\npropagate to the same path as fromFieldPath.\",\n \"type\": \"string\"\n },\n \"transforms\": {\n \"description\": \"Transforms are the list of functions that are used as a FIFO pipe for the\\ninput to be transformed.\",\n \"items\": {\n \"description\": \"Transform is a unit of process whose input is transformed into an output with\\nthe supplied configuration.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Convert is used to cast the input into the given output type.\",\n \"properties\": {\n \"format\": {\n \"description\": \"The expected input format.\\n\\n\\n* `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity).\\nOnly used during `string -\\u003e float64` conversions.\\n* `json` - parses the input as a JSON string.\\nOnly used during `string -\\u003e object` or `string -\\u003e list` conversions.\\n\\n\\nIf this property is null, the default conversion is applied.\",\n \"enum\": [\n \"none\",\n \"quantity\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"toType\": {\n \"description\": \"ToType is the type of the output of this transform.\",\n \"enum\": [\n \"string\",\n \"int\",\n \"int64\",\n \"bool\",\n \"float64\",\n \"object\",\n \"array\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"toType\"\n ],\n \"type\": \"object\"\n },\n \"map\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"Map uses the input as a key in the given map and returns the value.\",\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Match is a more complex version of Map that matches a list of patterns.\",\n \"properties\": {\n \"fallbackTo\": {\n \"default\": \"Value\",\n \"description\": \"Determines to what value the transform should fallback if no pattern matches.\",\n \"enum\": [\n \"Value\",\n \"Input\"\n ],\n \"type\": \"string\"\n },\n \"fallbackValue\": {\n \"description\": \"The fallback value that should be returned by the transform if now pattern\\nmatches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"patterns\": {\n \"description\": \"The patterns that should be tested against the input string.\\nPatterns are tested in order. The value of the first match is used as\\nresult of this transform.\",\n \"items\": {\n \"description\": \"MatchTransformPattern is a transform that returns the value that matches a\\npattern.\",\n \"properties\": {\n \"literal\": {\n \"description\": \"Literal exactly matches the input string (case sensitive).\\nIs required if `type` is `literal`.\",\n \"type\": \"string\"\n },\n \"regexp\": {\n \"description\": \"Regexp to match against the input string.\\nIs required if `type` is `regexp`.\",\n \"type\": \"string\"\n },\n \"result\": {\n \"description\": \"The value that is used as result of the transform if the pattern matches.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"literal\",\n \"description\": \"Type specifies how the pattern matches the input.\\n\\n\\n* `literal` - the pattern value has to exactly match (case sensitive) the\\ninput string. This is the default.\\n\\n\\n* `regexp` - the pattern treated as a regular expression against\\nwhich the input string is tested. Crossplane will throw an error if the\\nkey is not a valid regexp.\",\n \"enum\": [\n \"literal\",\n \"regexp\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"result\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"math\": {\n \"description\": \"Math is used to transform the input via mathematical operations such as\\nmultiplication.\",\n \"properties\": {\n \"clampMax\": {\n \"description\": \"ClampMax makes sure that the value is not bigger than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"clampMin\": {\n \"description\": \"ClampMin makes sure that the value is not smaller than the given value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"multiply\": {\n \"description\": \"Multiply the value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"default\": \"Multiply\",\n \"description\": \"Type of the math transform to be run.\",\n \"enum\": [\n \"Multiply\",\n \"ClampMin\",\n \"ClampMax\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"string\": {\n \"description\": \"String is used to transform the input into a string or a different kind\\nof string. Note that the input does not necessarily need to be a string.\",\n \"properties\": {\n \"convert\": {\n \"description\": \"Optional conversion method to be specified.\\n`ToUpper` and `ToLower` change the letter case of the input string.\\n`ToBase64` and `FromBase64` perform a base64 conversion based on the input string.\\n`ToJson` converts any input value into its raw JSON representation.\\n`ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input\\nconverted to JSON.\\n`ToAdler32` generate a addler32 hash based on the input string.\",\n \"enum\": [\n \"ToUpper\",\n \"ToLower\",\n \"ToBase64\",\n \"FromBase64\",\n \"ToJson\",\n \"ToSha1\",\n \"ToSha256\",\n \"ToSha512\",\n \"ToAdler32\"\n ],\n \"type\": \"string\"\n },\n \"fmt\": {\n \"description\": \"Format the input using a Go format string. See\\nhttps://golang.org/pkg/fmt/ for details.\",\n \"type\": \"string\"\n },\n \"join\": {\n \"description\": \"Join defines parameters to join a slice of values to a string.\",\n \"properties\": {\n \"separator\": {\n \"description\": \"Separator defines the character that should separate the values from each\\nother in the joined string.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"separator\"\n ],\n \"type\": \"object\"\n },\n \"regexp\": {\n \"description\": \"Extract a match from the input using a regular expression.\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group number to match. 0 (the default) matches the entire expression.\",\n \"type\": \"integer\"\n },\n \"match\": {\n \"description\": \"Match string. May optionally include submatches, aka capture groups.\\nSee https://pkg.go.dev/regexp/ for details.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"match\"\n ],\n \"type\": \"object\"\n },\n \"trim\": {\n \"description\": \"Trim the prefix or suffix from the input\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"Format\",\n \"description\": \"Type of the string transform to be run.\",\n \"enum\": [\n \"Format\",\n \"Convert\",\n \"TrimPrefix\",\n \"TrimSuffix\",\n \"Regexp\",\n \"Join\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of the transform to be run.\",\n \"enum\": [\n \"map\",\n \"match\",\n \"math\",\n \"string\",\n \"convert\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"default\": \"FromCompositeFieldPath\",\n \"description\": \"Type sets the patching behaviour to be used. Each patch type may require\\nits own fields to be set on the Patch object.\",\n \"enum\": [\n \"FromCompositeFieldPath\",\n \"FromEnvironmentFieldPath\",\n \"PatchSet\",\n \"ToCompositeFieldPath\",\n \"ToEnvironmentFieldPath\",\n \"CombineFromEnvironment\",\n \"CombineFromComposite\",\n \"CombineToComposite\",\n \"CombineToEnvironment\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessChecks\": {\n \"default\": [\n {\n \"matchCondition\": {\n \"status\": \"True\",\n \"type\": \"Ready\"\n },\n \"type\": \"MatchCondition\"\n }\n ],\n \"description\": \"ReadinessChecks allows users to define custom readiness checks. All checks\\nhave to return true in order for resource to be considered ready. The\\ndefault readiness check is to have the \\\"Ready\\\" condition to be \\\"True\\\".\",\n \"items\": {\n \"description\": \"ReadinessCheck is used to indicate how to tell whether a resource is ready\\nfor consumption.\",\n \"properties\": {\n \"fieldPath\": {\n \"description\": \"FieldPath shows the path of the field whose value will be used.\",\n \"type\": \"string\"\n },\n \"matchCondition\": {\n \"description\": \"MatchCondition specifies the condition you'd like to match if you're using \\\"MatchCondition\\\" type.\",\n \"properties\": {\n \"status\": {\n \"default\": \"True\",\n \"description\": \"Status is the status of the condition you'd like to match.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"default\": \"Ready\",\n \"description\": \"Type indicates the type of condition you'd like to use.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"matchInteger\": {\n \"description\": \"MatchInt is the value you'd like to match if you're using \\\"MatchInt\\\" type.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"matchString\": {\n \"description\": \"MatchString is the value you'd like to match if you're using \\\"MatchString\\\" type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of probe you'd like to use.\",\n \"enum\": [\n \"MatchString\",\n \"MatchInteger\",\n \"NonEmpty\",\n \"MatchCondition\",\n \"MatchTrue\",\n \"MatchFalse\",\n \"None\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"base\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"revision\": {\n \"description\": \"Revision number. Newer revisions have larger numbers.\",\n \"format\": \"int64\",\n \"type\": \"integer\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"Value is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n },\n \"writeConnectionSecretsToNamespace\": {\n \"description\": \"WriteConnectionSecretsToNamespace specifies the namespace in which the\\nconnection secrets of composite resource dynamically provisioned using\\nthis composition will be created.\\nThis field is planned to be replaced in a future release in favor of\\nPublishConnectionDetailsWithStoreConfigRef. Currently, both could be\\nset independently and connection details would be published to both\\nwithout affecting each other as long as related fields at MR level\\nspecified.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"compositeTypeRef\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Composition Revision\",\n \"type\": \"object\"\n}", + "version": "apiextensions.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Composition Revision", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Configuration.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Configuration.json new file mode 100644 index 00000000000..fad906fcbcf --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Configuration.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Configuration", + "schema": "{\n \"description\": \"A Configuration installs an OCI compatible Crossplane package, extending\\nCrossplane with support for new kinds of CompositeResourceDefinitions and\\nCompositions.\\n\\n\\nRead the Crossplane documentation for\\n[more information about Configuration packages](https://docs.crossplane.io/latest/concepts/packages).\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ConfigurationSpec specifies details about a request to install a\\nconfiguration to Crossplane.\",\n \"properties\": {\n \"commonLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"ignoreCrossplaneConstraints\": {\n \"default\": false,\n \"description\": \"IgnoreCrossplaneConstraints indicates to the package manager whether to\\nhonor Crossplane version constrains specified by the package.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"package\": {\n \"description\": \"Package is the name of the package that is being requested.\",\n \"type\": \"string\"\n },\n \"packagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"description\": \"PackagePullPolicy defines the pull policy for the package.\\nDefault is IfNotPresent.\",\n \"type\": \"string\"\n },\n \"packagePullSecrets\": {\n \"description\": \"PackagePullSecrets are named secrets in the same namespace that can be used\\nto fetch packages from private registries.\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"revisionActivationPolicy\": {\n \"default\": \"Automatic\",\n \"description\": \"RevisionActivationPolicy specifies how the package controller should\\nupdate from one revision to the next. Options are Automatic or Manual.\\nDefault is Automatic.\",\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"default\": 1,\n \"description\": \"RevisionHistoryLimit dictates how the package controller cleans up old\\ninactive package revisions.\\nDefaults to 1. Can be disabled by explicitly setting to 0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"skipDependencyResolution\": {\n \"default\": false,\n \"description\": \"SkipDependencyResolution indicates to the package manager whether to skip\\nresolving dependencies for a package. Setting this value to true may have\\nunintended consequences.\\nDefault is false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"package\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Configuration\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Configuration", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ConfigurationRevision.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ConfigurationRevision.json new file mode 100644 index 00000000000..29c03cd6df0 --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ConfigurationRevision.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ConfigurationRevision", + "schema": "{\n \"description\": \"A ConfigurationRevision represents a revision of a Configuration. Crossplane\\ncreates new revisions when there are changes to a Configuration.\\n\\n\\nCrossplane creates and manages ConfigurationRevision. Don't directly edit\\nConfigurationRevisions.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"PackageRevisionSpec specifies the desired state of a PackageRevision.\",\n \"properties\": {\n \"commonLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"desiredState\": {\n \"description\": \"DesiredState of the PackageRevision. Can be either Active or Inactive.\",\n \"type\": \"string\"\n },\n \"ignoreCrossplaneConstraints\": {\n \"default\": false,\n \"description\": \"IgnoreCrossplaneConstraints indicates to the package manager whether to\\nhonor Crossplane version constrains specified by the package.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Package image used by install Pod to extract package contents.\",\n \"type\": \"string\"\n },\n \"packagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"description\": \"PackagePullPolicy defines the pull policy for the package. It is also\\napplied to any images pulled for the package, such as a provider's\\ncontroller image.\\nDefault is IfNotPresent.\",\n \"type\": \"string\"\n },\n \"packagePullSecrets\": {\n \"description\": \"PackagePullSecrets are named secrets in the same namespace that can be\\nused to fetch packages from private registries. They are also applied to\\nany images pulled for the package, such as a provider's controller image.\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"revision\": {\n \"description\": \"Revision number. Indicates when the revision will be garbage collected\\nbased on the parent's RevisionHistoryLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"skipDependencyResolution\": {\n \"default\": false,\n \"description\": \"SkipDependencyResolution indicates to the package manager whether to skip\\nresolving dependencies for a package. Setting this value to true may have\\nunintended consequences.\\nDefault is false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"desiredState\",\n \"image\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Configuration Revision\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Configuration Revision", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ControllerConfig.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ControllerConfig.json new file mode 100644 index 00000000000..86100b280b1 --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ControllerConfig.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ControllerConfig", + "schema": "{\n \"description\": \"A ControllerConfig applies settings to controllers like Provider pods.\\nDeprecated: Use the\\n[DeploymentRuntimeConfig](https://docs.crossplane.io/latest/concepts/providers#runtime-configuration)\\ninstead.\\n\\n\\nRead the\\n[Package Runtime Configuration](https://github.com/crossplane/crossplane/blob/11bbe13ea3604928cc4e24e8d0d18f3f5f7e847c/design/one-pager-package-runtime-config.md)\\ndesign document for more details.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ControllerConfigSpec specifies the configuration for a packaged controller.\\nValues provided will override package manager defaults. Labels and\\nannotations are passed to both the controller Deployment and ServiceAccount.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe docker image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax\\ncan be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\\nregardless of whether the variable exists or not.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use. For example,\\nin the case of docker, only DockerConfig type secrets are honored.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\\nSetting ImagePullSecrets will replace any secrets that have been\\npropagated to a controller Deployment, typically via packagePullSecrets.\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata that will be added to the provider Pod.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http:https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and\\ncategorize (scope and select) objects. This will only affect\\nlabels on the pod, not the pod selector. Labels will be merged\\nwith internal labels used by crossplane, and labels with a\\ncrossplane.io key might be overwritten.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\"\n },\n \"podSecurityContext\": {\n \"description\": \"PodSecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"ports\": {\n \"description\": \"List of container ports to expose on the container\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\\nNote: If more than 1 replica is set and leader election is not enabled then\\ncontrollers could conflict. Environment variable \\\"LEADER_ELECTION\\\" can be\\nused to enable leader election process.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/585-runtime-class/README.md\\nThis is a beta feature as of Kubernetes v1.14.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds container-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\\nIf specified, a ServiceAccount named this ServiceAccountName will be used for\\nthe spec.serviceAccountName field in Pods to be created and for the subjects.name field\\nin a ClusterRoleBinding to be created.\\nIf there is no ServiceAccount named this ServiceAccountName, a new ServiceAccount\\nwill be created.\\nIf there is a pre-existing ServiceAccount named this ServiceAccountName, the ServiceAccount\\nwill be used. The annotations in the ControllerConfig will be copied to the ServiceAccount\\nand pre-existing annotations will be kept.\\nRegardless of whether there is a ServiceAccount created by Crossplane or is in place already,\\nthe ServiceAccount will be deleted once the Provider and ControllerConfig are deleted.\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"List of VolumeMounts to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Controller Config\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Controller Config", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/DeploymentRuntimeConfig.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/DeploymentRuntimeConfig.json new file mode 100644 index 00000000000..37c9fd335b7 --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/DeploymentRuntimeConfig.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DeploymentRuntimeConfig", + "schema": "{\n \"description\": \"The DeploymentRuntimeConfig provides settings for the Kubernetes Deployment\\nof a Provider or composition function package.\\n\\n\\nRead the Crossplane documentation for\\n[more information about DeploymentRuntimeConfigs](https://docs.crossplane.io/latest/concepts/providers/#runtime-configuration).\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DeploymentRuntimeConfigSpec specifies the configuration for a packaged controller.\\nValues provided will override package manager defaults. Labels and\\nannotations are passed to both the controller Deployment and ServiceAccount.\",\n \"properties\": {\n \"deploymentTemplate\": {\n \"description\": \"DeploymentTemplate is the template for the Deployment object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata contains the configurable metadata fields for the Deployment.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that\\nmay be set by external tools to store and retrieve arbitrary metadata.\\nThey are not queryable and should be preserved when modifying objects.\\nMore info: http:https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. Labels will be merged with internal labels\\nused by crossplane, and labels with a crossplane.io key might be\\noverwritten.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the name of the object.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec contains the configurable spec fields for the Deployment object.\",\n \"properties\": {\n \"minReadySeconds\": {\n \"description\": \"Minimum number of seconds for which a newly created pod should be ready\\nwithout any of its container crashing, for it to be considered available.\\nDefaults to 0 (pod will be considered available as soon as it is ready)\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"paused\": {\n \"description\": \"Indicates that the deployment is paused.\",\n \"type\": \"boolean\"\n },\n \"progressDeadlineSeconds\": {\n \"description\": \"The maximum time in seconds for a deployment to make progress before it\\nis considered to be failed. The deployment controller will continue to\\nprocess failed deployments and a condition with a ProgressDeadlineExceeded\\nreason will be surfaced in the deployment status. Note that progress will\\nnot be estimated during the time a deployment is paused. Defaults to 600s.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"The number of old ReplicaSets to retain to allow rollback.\\nThis is a pointer to distinguish between explicit zero and not specified.\\nDefaults to 10.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"selector\": {\n \"description\": \"Label selector for pods. Existing ReplicaSets whose pods are\\nselected by this will be the ones affected by this deployment.\\nIt must match the pod template's labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"strategy\": {\n \"description\": \"The deployment strategy to use to replace existing pods with new ones.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"Rolling update config params. Present only if DeploymentStrategyType =\\nRollingUpdate.\\n---\\nTODO: Update this to follow our convention for oneOf, whatever we decide it\\nto be.\",\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be scheduled above the desired number of\\npods.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nThis can not be 0 if MaxUnavailable is 0.\\nAbsolute number is calculated from percentage by rounding up.\\nDefaults to 25%.\\nExample: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\\nthe rolling update starts, such that the total number of old and new pods do not exceed\\n130% of desired pods. Once old pods have been killed,\\nnew ReplicaSet can be scaled up further, ensuring that total number of pods running\\nat any time during the update is at most 130% of desired pods.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding down.\\nThis can not be 0 if MaxSurge is 0.\\nDefaults to 25%.\\nExample: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\\nimmediately when the rolling update starts. Once new pods are ready, old ReplicaSet\\ncan be scaled down further, followed by scaling up the new ReplicaSet, ensuring\\nthat the total number of pods available at all times during the update is at\\nleast 70% of desired pods.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template describes the pods that will be created.\\nThe only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"selector\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountTemplate\": {\n \"description\": \"ServiceAccountTemplate is the template for the ServiceAccount object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata contains the configurable metadata fields for the ServiceAccount.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that\\nmay be set by external tools to store and retrieve arbitrary metadata.\\nThey are not queryable and should be preserved when modifying objects.\\nMore info: http:https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. Labels will be merged with internal labels\\nused by crossplane, and labels with a crossplane.io key might be\\noverwritten.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the name of the object.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceTemplate\": {\n \"description\": \"ServiceTemplate is the template for the Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata contains the configurable metadata fields for the Service.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that\\nmay be set by external tools to store and retrieve arbitrary metadata.\\nThey are not queryable and should be preserved when modifying objects.\\nMore info: http:https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. Labels will be merged with internal labels\\nused by crossplane, and labels with a crossplane.io key might be\\noverwritten.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the name of the object.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Deployment Runtime Config\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Deployment Runtime Config", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/EnvironmentConfig.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/EnvironmentConfig.json new file mode 100644 index 00000000000..61636ad10ea --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/EnvironmentConfig.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "EnvironmentConfig", + "schema": "{\n \"description\": \"An EnvironmentConfig contains user-defined unstructured values for\\nuse in a Composition.\\n\\n\\nRead the Crossplane documentation for\\n[more information about EnvironmentConfigs](https://docs.crossplane.io/latest/concepts/environment-configs).\",\n \"properties\": {\n \"data\": {\n \"additionalProperties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"description\": \"The data of this EnvironmentConfig.\\nThis may contain any kind of structure that can be serialized into JSON.\",\n \"type\": \"object\"\n }\n },\n \"title\": \"Environment Config\",\n \"type\": \"object\"\n}", + "version": "apiextensions.crossplane.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Environment Config", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Function.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Function.json new file mode 100644 index 00000000000..9ca584bcc6f --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Function.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Function", + "schema": "{\n \"description\": \"A Function installs an OCI compatible Crossplane package, extending\\nCrossplane with support for a new kind of composition function.\\n\\n\\nRead the Crossplane documentation for\\n[more information about Functions](https://docs.crossplane.io/latest/concepts/composition-functions).\",\n \"properties\": {\n \"spec\": {\n \"description\": \"FunctionSpec specifies the configuration of a Function.\",\n \"properties\": {\n \"commonLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"controllerConfigRef\": {\n \"description\": \"ControllerConfigRef references a ControllerConfig resource that will be\\nused to configure the packaged controller Deployment.\\nDeprecated: Use RuntimeConfigReference instead.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the ControllerConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"ignoreCrossplaneConstraints\": {\n \"default\": false,\n \"description\": \"IgnoreCrossplaneConstraints indicates to the package manager whether to\\nhonor Crossplane version constrains specified by the package.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"package\": {\n \"description\": \"Package is the name of the package that is being requested.\",\n \"type\": \"string\"\n },\n \"packagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"description\": \"PackagePullPolicy defines the pull policy for the package.\\nDefault is IfNotPresent.\",\n \"type\": \"string\"\n },\n \"packagePullSecrets\": {\n \"description\": \"PackagePullSecrets are named secrets in the same namespace that can be used\\nto fetch packages from private registries.\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"revisionActivationPolicy\": {\n \"default\": \"Automatic\",\n \"description\": \"RevisionActivationPolicy specifies how the package controller should\\nupdate from one revision to the next. Options are Automatic or Manual.\\nDefault is Automatic.\",\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"default\": 1,\n \"description\": \"RevisionHistoryLimit dictates how the package controller cleans up old\\ninactive package revisions.\\nDefaults to 1. Can be disabled by explicitly setting to 0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runtimeConfigRef\": {\n \"default\": {\n \"name\": \"default\"\n },\n \"description\": \"RuntimeConfigRef references a RuntimeConfig resource that will be used\\nto configure the package runtime.\",\n \"properties\": {\n \"apiVersion\": {\n \"default\": \"pkg.crossplane.io/v1beta1\",\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"default\": \"DeploymentRuntimeConfig\",\n \"description\": \"Kind of the referent.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the RuntimeConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"skipDependencyResolution\": {\n \"default\": false,\n \"description\": \"SkipDependencyResolution indicates to the package manager whether to skip\\nresolving dependencies for a package. Setting this value to true may have\\nunintended consequences.\\nDefault is false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"package\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Function\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Function", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/FunctionRevision.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/FunctionRevision.json new file mode 100644 index 00000000000..e7f23b16de2 --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/FunctionRevision.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "FunctionRevision", + "schema": "{\n \"description\": \"A FunctionRevision represents a revision of a Function. Crossplane\\ncreates new revisions when there are changes to the Function.\\n\\n\\nCrossplane creates and manages FunctionRevisions. Don't directly edit\\nFunctionRevisions.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"FunctionRevisionSpec specifies configuration for a FunctionRevision.\",\n \"properties\": {\n \"commonLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"controllerConfigRef\": {\n \"description\": \"ControllerConfigRef references a ControllerConfig resource that will be\\nused to configure the packaged controller Deployment.\\nDeprecated: Use RuntimeConfigReference instead.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the ControllerConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"desiredState\": {\n \"description\": \"DesiredState of the PackageRevision. Can be either Active or Inactive.\",\n \"type\": \"string\"\n },\n \"ignoreCrossplaneConstraints\": {\n \"default\": false,\n \"description\": \"IgnoreCrossplaneConstraints indicates to the package manager whether to\\nhonor Crossplane version constrains specified by the package.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Package image used by install Pod to extract package contents.\",\n \"type\": \"string\"\n },\n \"packagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"description\": \"PackagePullPolicy defines the pull policy for the package. It is also\\napplied to any images pulled for the package, such as a provider's\\ncontroller image.\\nDefault is IfNotPresent.\",\n \"type\": \"string\"\n },\n \"packagePullSecrets\": {\n \"description\": \"PackagePullSecrets are named secrets in the same namespace that can be\\nused to fetch packages from private registries. They are also applied to\\nany images pulled for the package, such as a provider's controller image.\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"revision\": {\n \"description\": \"Revision number. Indicates when the revision will be garbage collected\\nbased on the parent's RevisionHistoryLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runtimeConfigRef\": {\n \"default\": {\n \"name\": \"default\"\n },\n \"description\": \"RuntimeConfigRef references a RuntimeConfig resource that will be used\\nto configure the package runtime.\",\n \"properties\": {\n \"apiVersion\": {\n \"default\": \"pkg.crossplane.io/v1beta1\",\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"default\": \"DeploymentRuntimeConfig\",\n \"description\": \"Kind of the referent.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the RuntimeConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"skipDependencyResolution\": {\n \"default\": false,\n \"description\": \"SkipDependencyResolution indicates to the package manager whether to skip\\nresolving dependencies for a package. Setting this value to true may have\\nunintended consequences.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"tlsClientSecretName\": {\n \"description\": \"TLSClientSecretName is the name of the TLS Secret that stores client\\ncertificates of the Provider.\",\n \"type\": \"string\"\n },\n \"tlsServerSecretName\": {\n \"description\": \"TLSServerSecretName is the name of the TLS Secret that stores server\\ncertificates of the Provider.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"desiredState\",\n \"image\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Function Revision\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Function Revision", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Lock.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Lock.json new file mode 100644 index 00000000000..2c794950031 --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Lock.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Lock", + "schema": "{\n \"description\": \"Lock is the CRD type that tracks package dependencies.\",\n \"properties\": {\n \"packages\": {\n \"items\": {\n \"description\": \"LockPackage is a package that is in the lock.\",\n \"properties\": {\n \"dependencies\": {\n \"description\": \"Dependencies are the list of dependencies of this package. The order of\\nthe dependencies will dictate the order in which they are resolved.\",\n \"items\": {\n \"description\": \"A Dependency is a dependency of a package in the lock.\",\n \"properties\": {\n \"constraints\": {\n \"description\": \"Constraints is a valid semver range, which will be used to select a valid\\ndependency version.\",\n \"type\": \"string\"\n },\n \"package\": {\n \"description\": \"Package is the OCI image name without a tag or digest.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of package. Can be either Configuration or Provider.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"constraints\",\n \"package\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name corresponds to the name of the package revision for this package.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source is the OCI image name without a tag or digest.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of package. Can be either Configuration or Provider.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version is the tag or digest of the OCI image.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"dependencies\",\n \"name\",\n \"source\",\n \"type\",\n \"version\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"title\": \"Lock\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Lock", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Provider.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Provider.json new file mode 100644 index 00000000000..050e9df1cab --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Provider.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Provider", + "schema": "{\n \"description\": \"A Provider installs an OCI compatible Crossplane package, extending\\nCrossplane with support for new kinds of managed resources.\\n\\n\\nRead the Crossplane documentation for\\n[more information about Providers](https://docs.crossplane.io/latest/concepts/providers).\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ProviderSpec specifies details about a request to install a provider to\\nCrossplane.\",\n \"properties\": {\n \"commonLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"controllerConfigRef\": {\n \"description\": \"ControllerConfigRef references a ControllerConfig resource that will be\\nused to configure the packaged controller Deployment.\\nDeprecated: Use RuntimeConfigReference instead.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the ControllerConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"ignoreCrossplaneConstraints\": {\n \"default\": false,\n \"description\": \"IgnoreCrossplaneConstraints indicates to the package manager whether to\\nhonor Crossplane version constrains specified by the package.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"package\": {\n \"description\": \"Package is the name of the package that is being requested.\",\n \"type\": \"string\"\n },\n \"packagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"description\": \"PackagePullPolicy defines the pull policy for the package.\\nDefault is IfNotPresent.\",\n \"type\": \"string\"\n },\n \"packagePullSecrets\": {\n \"description\": \"PackagePullSecrets are named secrets in the same namespace that can be used\\nto fetch packages from private registries.\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"revisionActivationPolicy\": {\n \"default\": \"Automatic\",\n \"description\": \"RevisionActivationPolicy specifies how the package controller should\\nupdate from one revision to the next. Options are Automatic or Manual.\\nDefault is Automatic.\",\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"default\": 1,\n \"description\": \"RevisionHistoryLimit dictates how the package controller cleans up old\\ninactive package revisions.\\nDefaults to 1. Can be disabled by explicitly setting to 0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runtimeConfigRef\": {\n \"default\": {\n \"name\": \"default\"\n },\n \"description\": \"RuntimeConfigRef references a RuntimeConfig resource that will be used\\nto configure the package runtime.\",\n \"properties\": {\n \"apiVersion\": {\n \"default\": \"pkg.crossplane.io/v1beta1\",\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"default\": \"DeploymentRuntimeConfig\",\n \"description\": \"Kind of the referent.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the RuntimeConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"skipDependencyResolution\": {\n \"default\": false,\n \"description\": \"SkipDependencyResolution indicates to the package manager whether to skip\\nresolving dependencies for a package. Setting this value to true may have\\nunintended consequences.\\nDefault is false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"package\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Provider\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Provider", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ProviderRevision.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ProviderRevision.json new file mode 100644 index 00000000000..e08fab95aa5 --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/ProviderRevision.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ProviderRevision", + "schema": "{\n \"description\": \"A ProviderRevision represents a revision of a Provider. Crossplane\\ncreates new revisions when there are changes to a Provider.\\n\\n\\nCrossplane creates and manages ProviderRevisions. Don't directly edit\\nProviderRevisions.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ProviderRevisionSpec specifies configuration for a ProviderRevision.\",\n \"properties\": {\n \"commonLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n \"type\": \"object\"\n },\n \"controllerConfigRef\": {\n \"description\": \"ControllerConfigRef references a ControllerConfig resource that will be\\nused to configure the packaged controller Deployment.\\nDeprecated: Use RuntimeConfigReference instead.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the ControllerConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"desiredState\": {\n \"description\": \"DesiredState of the PackageRevision. Can be either Active or Inactive.\",\n \"type\": \"string\"\n },\n \"ignoreCrossplaneConstraints\": {\n \"default\": false,\n \"description\": \"IgnoreCrossplaneConstraints indicates to the package manager whether to\\nhonor Crossplane version constrains specified by the package.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Package image used by install Pod to extract package contents.\",\n \"type\": \"string\"\n },\n \"packagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"description\": \"PackagePullPolicy defines the pull policy for the package. It is also\\napplied to any images pulled for the package, such as a provider's\\ncontroller image.\\nDefault is IfNotPresent.\",\n \"type\": \"string\"\n },\n \"packagePullSecrets\": {\n \"description\": \"PackagePullSecrets are named secrets in the same namespace that can be\\nused to fetch packages from private registries. They are also applied to\\nany images pulled for the package, such as a provider's controller image.\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"revision\": {\n \"description\": \"Revision number. Indicates when the revision will be garbage collected\\nbased on the parent's RevisionHistoryLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runtimeConfigRef\": {\n \"default\": {\n \"name\": \"default\"\n },\n \"description\": \"RuntimeConfigRef references a RuntimeConfig resource that will be used\\nto configure the package runtime.\",\n \"properties\": {\n \"apiVersion\": {\n \"default\": \"pkg.crossplane.io/v1beta1\",\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"default\": \"DeploymentRuntimeConfig\",\n \"description\": \"Kind of the referent.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the RuntimeConfig.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"skipDependencyResolution\": {\n \"default\": false,\n \"description\": \"SkipDependencyResolution indicates to the package manager whether to skip\\nresolving dependencies for a package. Setting this value to true may have\\nunintended consequences.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"tlsClientSecretName\": {\n \"description\": \"TLSClientSecretName is the name of the TLS Secret that stores client\\ncertificates of the Provider.\",\n \"type\": \"string\"\n },\n \"tlsServerSecretName\": {\n \"description\": \"TLSServerSecretName is the name of the TLS Secret that stores server\\ncertificates of the Provider.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"desiredState\",\n \"image\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Provider Revision\",\n \"type\": \"object\"\n}", + "version": "pkg.crossplane.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Provider Revision", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/StoreConfig.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/StoreConfig.json new file mode 100644 index 00000000000..ac94a8696ee --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/StoreConfig.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "StoreConfig", + "schema": "{\n \"description\": \"A StoreConfig configures how Crossplane controllers should store connection\\ndetails in an external secret store.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"A StoreConfigSpec defines the desired state of a StoreConfig.\",\n \"properties\": {\n \"defaultScope\": {\n \"description\": \"DefaultScope used for scoping secrets for \\\"cluster-scoped\\\" resources.\\nIf store type is \\\"Kubernetes\\\", this would mean the default namespace to\\nstore connection secrets for cluster scoped resources.\\nIn case of \\\"Vault\\\", this would be used as the default parent path.\\nTypically, should be set as Crossplane installation namespace.\",\n \"type\": \"string\"\n },\n \"kubernetes\": {\n \"description\": \"Kubernetes configures a Kubernetes secret store.\\nIf the \\\"type\\\" is \\\"Kubernetes\\\" but no config provided, in cluster config\\nwill be used.\",\n \"properties\": {\n \"auth\": {\n \"description\": \"Credentials used to connect to the Kubernetes API.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Env is a reference to an environment variable that contains credentials\\nthat must be used to connect to the provider.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of an environment variable.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"fs\": {\n \"description\": \"Fs is a reference to a filesystem location that contains credentials that\\nmust be used to connect to the provider.\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path is a filesystem path.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"secretRef\": {\n \"description\": \"A SecretRef is a reference to a secret key that contains the credentials\\nthat must be used to connect to the provider.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"source\": {\n \"description\": \"Source of the credentials.\",\n \"enum\": [\n \"None\",\n \"Secret\",\n \"Environment\",\n \"Filesystem\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"source\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"auth\"\n ],\n \"type\": \"object\"\n },\n \"plugin\": {\n \"description\": \"Plugin configures External secret store as a plugin.\",\n \"properties\": {\n \"configRef\": {\n \"description\": \"ConfigRef contains store config reference info.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the referenced config.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referenced config.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referenced config.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"endpoint\": {\n \"description\": \"Endpoint is the endpoint of the gRPC server.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"Kubernetes\",\n \"description\": \"Type configures which secret store to be used. Only the configuration\\nblock for this store will be used and others will be ignored if provided.\\nDefault is Kubernetes.\",\n \"enum\": [\n \"Kubernetes\",\n \"Vault\",\n \"Plugin\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"defaultScope\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Store Config\",\n \"type\": \"object\"\n}", + "version": "secrets.crossplane.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Store Config", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Usage.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Usage.json new file mode 100644 index 00000000000..04f58627e0c --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/components/Usage.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Usage", + "schema": "{\n \"description\": \"A Usage defines a deletion blocking relationship between two resources.\\n\\n\\nUsages prevent accidental deletion of a single resource or deletion of\\nresources with dependent resources.\\n\\n\\nRead the Crossplane documentation for\\n[more information about Compositions](https://docs.crossplane.io/latest/concepts/usages).\",\n \"properties\": {\n \"spec\": {\n \"description\": \"UsageSpec defines the desired state of Usage.\",\n \"properties\": {\n \"by\": {\n \"description\": \"By is the resource that is \\\"using the other resource\\\".\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"resourceRef\": {\n \"description\": \"Reference to the resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resourceSelector\": {\n \"description\": \"Selector to the resource.\\nThis field will be ignored if ResourceRef is set.\",\n \"properties\": {\n \"matchControllerRef\": {\n \"description\": \"MatchControllerRef ensures an object with the same controller reference\\nas the selecting object is selected.\",\n \"type\": \"boolean\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"MatchLabels ensures an object with matching labels is selected.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"either a resource reference or a resource selector should be set.\",\n \"rule\": \"has(self.resourceRef) || has(self.resourceSelector)\"\n }\n ]\n },\n \"of\": {\n \"description\": \"Of is the resource that is \\\"being used\\\".\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"resourceRef\": {\n \"description\": \"Reference to the resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resourceSelector\": {\n \"description\": \"Selector to the resource.\\nThis field will be ignored if ResourceRef is set.\",\n \"properties\": {\n \"matchControllerRef\": {\n \"description\": \"MatchControllerRef ensures an object with the same controller reference\\nas the selecting object is selected.\",\n \"type\": \"boolean\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"MatchLabels ensures an object with matching labels is selected.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"either a resource reference or a resource selector should be set.\",\n \"rule\": \"has(self.resourceRef) || has(self.resourceSelector)\"\n }\n ]\n },\n \"reason\": {\n \"description\": \"Reason is the reason for blocking deletion of the resource.\",\n \"type\": \"string\"\n },\n \"replayDeletion\": {\n \"description\": \"ReplayDeletion will trigger a deletion on the used resource during the deletion of the usage itself, if it was attempted to be deleted at least once.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"of\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"either \\\"spec.by\\\" or \\\"spec.reason\\\" must be specified.\",\n \"rule\": \"has(self.by) || has(self.reason)\"\n }\n ]\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Usage\",\n \"type\": \"object\"\n}", + "version": "apiextensions.crossplane.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Usage", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "source_uri": "git://github.com/crossplane/crossplane/master/cluster/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath id=\"clip-path\"\u003e\u003cpath class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-2\"\u003e\u003cpath class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-3\"\u003e\u003crect class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-4\"\u003e\u003crect class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-5\"\u003e\u003crect class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-7\"\u003e\u003crect class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-8\"\u003e\u003crect class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-11\"\u003e\u003crect class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-12\"\u003e\u003crect class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"/\u003e\u003c/clipPath\u003e\u003cclipPath id=\"clip-path-14\"\u003e\u003cpolygon class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg class=\"cls-2\"\u003e\u003crect class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"/\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-6\"\u003e\u003cg class=\"cls-7\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-10\"\u003e\u003cg class=\"cls-11\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-4\"\u003e\u003cg class=\"cls-5\"\u003e\u003cg class=\"cls-13\"\u003e\u003cg class=\"cls-14\"\u003e\u003cg class=\"cls-8\"\u003e\u003crect class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg class=\"cls-16\"\u003e\u003crect class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 900 900\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/model.json b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/model.json new file mode 100644 index 00000000000..37a5c7880c5 --- /dev/null +++ b/server/meshmodel/crossplane/v1.17.0-rc.1/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Crossplane", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#ffcd3c", + "secondaryColor": "#35d0ba", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#f7d186;}.cls-4{clip-path:url(#clip-path-2);}.cls-5{isolation:isolate;}.cls-6{clip-path:url(#clip-path-3);}.cls-7{clip-path:url(#clip-path-4);}.cls-8{clip-path:url(#clip-path-5);}.cls-9{fill:#ffcd3c;}.cls-10{clip-path:url(#clip-path-7);}.cls-11{clip-path:url(#clip-path-8);}.cls-12{fill:#f3807b;}.cls-13{clip-path:url(#clip-path-11);}.cls-14{clip-path:url(#clip-path-12);}.cls-15{fill:#35d0ba;}.cls-16{clip-path:url(#clip-path-14);}.cls-17{fill:#d8ae64;}\u003c/style\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M447.73,309.78a46.75981,46.75981,0,0,0-46.76,46.76V796.58a46.76,46.76,0,0,0,93.52,0V356.55a46.75555,46.75555,0,0,0-46.76-46.77\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.62,234.54q-.195,4.305-.2,8.68c0,3.19.07,6.35.24,9.5-.07,1.55-.24,3.08-.24,4.66V563.56c0,58.55,47.91,106.46,106.46,106.46H530.1c58.56,0,106.46-47.91,106.46-106.46V257.37c0-1.78-.18-3.51-.28-5.26.14-2.95.22-5.92.22-8.89,0-2.92-.07-5.8-.2-8.68C631.8,135.53,550.1,56.66,449.98,56.66,349.85,56.66,268.14,135.53,263.62,234.54Z\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-3\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"142.32001\" y=\"97.05\" width=\"606.10999\" height=\"606.10997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-4\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"121.45167\" y=\"305.6912\" width=\"654.37372\" height=\"195.51814\" transform=\"translate(-153.87924 435.4032) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-5\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"260.91\" y=\"50.92997\" width=\"382.11002\" height=\"619.28997\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-7\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-22.38\" y=\"-67.66\" width=\"639.04998\" height=\"639.05002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"-32.95044\" y=\"128.3843\" width=\"654.3837\" height=\"241.17767\" transform=\"translate(-89.86928 280.98264) rotate(-45)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-11\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"280.67001\" y=\"235.39999\" width=\"606.11002\" height=\"606.11002\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-12\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"258.77901\" y=\"443.79101\" width=\"654.39197\" height=\"193.81798\" transform=\"translate(-210.70418 572.72293) rotate(-45.00062)\"\u003e\u003c/rect\u003e\u003c/clipPath\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip-path-14\"\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"412.96 670.01 494.5 752.9 494.5 670.01 412.96 670.01\"\u003e\u003c/polygon\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" x=\"368.03\" y=\"276.84\" width=\"159.41\" height=\"599.44003\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" x=\"115.65\" y=\"70.36997\" width=\"665.66\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" x=\"-55.32999\" y=\"-100.60001\" width=\"699.14\" height=\"699.14004\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" x=\"253.14\" y=\"207.87\" width=\"665.65999\" height=\"665.65997\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\"\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" x=\"380.69\" y=\"636.90997\" width=\"147.02997\" height=\"147.66998\"\u003e\u003c/rect\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 900 900\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M471.22288,669.71789V790.45608c0,16.82419-10.9559,30.52608-24.40691,30.52608-13.46492,0-24.40692-13.68794-24.40692-30.52608V669.71789h48.81383M493.58075,647.36H400.03724V790.45608c0,29.21583,20.93612,52.88395,46.76478,52.88395,25.84261,0,46.76477-23.66812,46.76477-52.88395V647.36Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M588.56,154.07853a163.28343,163.28343,0,0,1,25.82871,81.41674c.11153,2.53688.18121,5.12948.18121,7.70818,0,2.53688-.06968,5.17131-.19517,7.8615l-.05572,1.10116.05572,1.10116c.04186.64119.08363,1.26844.12549,1.90961.05573.8642.12549,1.68661.12549,2.17446v87.68922L323.736,635.93012a85.29961,85.29961,0,0,1-40.19959-72.39831V459.102L588.56,154.07853m2.2999-32.04539L262.50273,450.40425V563.5458c0,43.9631,27.01347,81.91853,65.24768,98.10154L635.64534,353.75239V257.36533c0-1.78417-.18122-3.51259-.2788-5.26888.13936-2.955.223-5.91007.223-8.893q0-4.36982-.19517-8.67a185.61592,185.61592,0,0,0-44.53447-112.50037Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M449.04619,56.66c-100.12264,0-181.83209,78.86594-186.3483,177.87349q-.18816,4.3071-.19516,8.67c0,3.192.06967,6.3561.237,9.50629-.06968,1.56115-.237,3.0805-.237,4.65557V450.32058L590.832,121.99132A186.13267,186.13267,0,0,0,449.04619,56.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M368.95361,669.99664H529.1805c58.55706,0,106.46484-47.90777,106.46484-106.45088V353.04148L327.26255,661.42427A105.43227,105.43227,0,0,0,368.95361,669.99664Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.17.0-rc.1" + }, + "name": "crossplane", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/AuthorizationPolicy.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/AuthorizationPolicy.json new file mode 100644 index 00000000000..485be1d7094 --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/AuthorizationPolicy.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "AuthorizationPolicy", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration for access control on workloads. See more details at: https://istio.io/docs/reference/config/security/authorization-policy.html\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"provider\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"provider\"\n ]\n }\n ],\n \"properties\": {\n \"action\": {\n \"description\": \"Optional.\",\n \"enum\": [\n \"ALLOW\",\n \"DENY\",\n \"AUDIT\",\n \"CUSTOM\"\n ],\n \"type\": \"string\"\n },\n \"provider\": {\n \"description\": \"Specifies detailed configuration of the CUSTOM action.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Specifies the name of the extension provider.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"rules\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"source\": {\n \"description\": \"Source specifies the source of a request.\",\n \"properties\": {\n \"ipBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaces\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notNamespaces\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notRemoteIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notRequestPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"principals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"remoteIpBlocks\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"requestPrincipals\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"to\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"operation\": {\n \"description\": \"Operation specifies the operation of a request.\",\n \"properties\": {\n \"hosts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"methods\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notHosts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notMethods\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPaths\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notPorts\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"paths\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ports\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"when\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"properties\": {\n \"key\": {\n \"description\": \"The name of an Istio attribute.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"notValues\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"values\": {\n \"description\": \"Optional.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Optional.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Authorization Policy\",\n \"type\": \"object\"\n}", + "version": "security.istio.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Authorization Policy", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/DestinationRule.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/DestinationRule.json new file mode 100644 index 00000000000..eee7feb84f8 --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/DestinationRule.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DestinationRule", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting load balancing, outlier detection, etc. See more details at: https://istio.io/docs/reference/config/networking/destination-rule.html\",\n \"properties\": {\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this destination rule is exported.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"subsets\": {\n \"items\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the subset.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"trafficPolicy\": {\n \"description\": \"Traffic policies that apply to this subset.\",\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"description\": \"Maximum number of pending HTTP requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of requests to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"minimumRingSize\": {\n \"type\": \"integer\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute or failover can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only failover or distribute can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"to\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"ROUND_ROBIN\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelSettings\": {\n \"description\": \"Traffic policies specific to individual ports.\",\n \"items\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"description\": \"Maximum number of pending HTTP requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of requests to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"minimumRingSize\": {\n \"type\": \"integer\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute or failover can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only failover or distribute can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"to\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"ROUND_ROBIN\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"trafficPolicy\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"description\": \"Maximum number of pending HTTP requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of requests to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"minimumRingSize\": {\n \"type\": \"integer\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute or failover can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only failover or distribute can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"to\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"ROUND_ROBIN\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelSettings\": {\n \"description\": \"Traffic policies specific to individual ports.\",\n \"items\": {\n \"properties\": {\n \"connectionPool\": {\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2UpgradePolicy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"enum\": [\n \"DEFAULT\",\n \"DO_NOT_UPGRADE\",\n \"UPGRADE\"\n ],\n \"type\": \"string\"\n },\n \"http1MaxPendingRequests\": {\n \"description\": \"Maximum number of pending HTTP requests to a destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2MaxRequests\": {\n \"description\": \"Maximum number of requests to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idleTimeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections.\",\n \"type\": \"string\"\n },\n \"maxRequestsPerConnection\": {\n \"description\": \"Maximum number of requests per connection to a backend.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRetries\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"useClientProtocol\": {\n \"description\": \"If set to true, client protocol will be preserved while initiating connection to backend.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connectTimeout\": {\n \"description\": \"TCP connection timeout.\",\n \"type\": \"string\"\n },\n \"maxConnections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpKeepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes.\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"type\": \"integer\"\n },\n \"time\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"loadBalancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"simple\"\n ]\n },\n {\n \"properties\": {\n \"consistentHash\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpHeaderName\"\n ]\n },\n {\n \"required\": [\n \"httpCookie\"\n ]\n },\n {\n \"required\": [\n \"useSourceIp\"\n ]\n },\n {\n \"required\": [\n \"httpQueryParameterName\"\n ]\n }\n ]\n }\n },\n \"required\": [\n \"consistentHash\"\n ]\n }\n ],\n \"properties\": {\n \"consistentHash\": {\n \"properties\": {\n \"httpCookie\": {\n \"description\": \"Hash based on HTTP cookie.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the cookie.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path to set for the cookie.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"Lifetime of the cookie.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpHeaderName\": {\n \"description\": \"Hash based on a specific HTTP header.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"httpQueryParameterName\": {\n \"description\": \"Hash based on a specific HTTP query parameter.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"minimumRingSize\": {\n \"type\": \"integer\"\n },\n \"useSourceIp\": {\n \"description\": \"Hash based on the source IP address.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localityLbSetting\": {\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute or failover can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"failover\": {\n \"description\": \"Optional: only failover or distribute can be set.\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"to\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"simple\": {\n \"enum\": [\n \"ROUND_ROBIN\",\n \"LEAST_CONN\",\n \"RANDOM\",\n \"PASSTHROUGH\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"outlierDetection\": {\n \"properties\": {\n \"baseEjectionTime\": {\n \"description\": \"Minimum ejection duration.\",\n \"type\": \"string\"\n },\n \"consecutive5xxErrors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"consecutiveErrors\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutiveGatewayErrors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis.\",\n \"type\": \"string\"\n },\n \"maxEjectionPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minHealthPercent\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"caCertificates\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"clientCertificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"credentialName\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"DISABLE\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Destination Rule\",\n \"type\": \"object\"\n}", + "version": "networking.istio.io/v1alpha3" + }, + "configuration": null, + "description": "", + "displayName": "Destination Rule", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/EnvoyFilter.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/EnvoyFilter.json new file mode 100644 index 00000000000..4760546f480 --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/EnvoyFilter.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "EnvoyFilter", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Customizing Envoy configuration generated by Istio. See more details at: https://istio.io/docs/reference/config/networking/envoy-filter.html\",\n \"properties\": {\n \"configPatches\": {\n \"description\": \"One or more patches with match conditions.\",\n \"items\": {\n \"properties\": {\n \"applyTo\": {\n \"enum\": [\n \"INVALID\",\n \"LISTENER\",\n \"FILTER_CHAIN\",\n \"NETWORK_FILTER\",\n \"HTTP_FILTER\",\n \"ROUTE_CONFIGURATION\",\n \"VIRTUAL_HOST\",\n \"HTTP_ROUTE\",\n \"CLUSTER\",\n \"EXTENSION_CONFIG\"\n ],\n \"type\": \"string\"\n },\n \"match\": {\n \"description\": \"Match on listener/route configuration/cluster.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"listener\"\n ]\n },\n {\n \"required\": [\n \"routeConfiguration\"\n ]\n },\n {\n \"required\": [\n \"cluster\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"listener\"\n ]\n },\n {\n \"required\": [\n \"routeConfiguration\"\n ]\n },\n {\n \"required\": [\n \"cluster\"\n ]\n }\n ],\n \"properties\": {\n \"cluster\": {\n \"description\": \"Match on envoy cluster attributes.\",\n \"properties\": {\n \"name\": {\n \"description\": \"The exact name of the cluster to match.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"description\": \"The service port for which this cluster was generated.\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"The fully qualified service name for this cluster.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"subset\": {\n \"description\": \"The subset associated with the service.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"context\": {\n \"description\": \"The specific config generation context to match on.\",\n \"enum\": [\n \"ANY\",\n \"SIDECAR_INBOUND\",\n \"SIDECAR_OUTBOUND\",\n \"GATEWAY\"\n ],\n \"type\": \"string\"\n },\n \"listener\": {\n \"description\": \"Match on envoy listener attributes.\",\n \"properties\": {\n \"filterChain\": {\n \"description\": \"Match a specific filter chain in a listener.\",\n \"properties\": {\n \"applicationProtocols\": {\n \"description\": \"Applies only to sidecars.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"destinationPort\": {\n \"description\": \"The destination_port value used by a filter chain's match condition.\",\n \"type\": \"integer\"\n },\n \"filter\": {\n \"description\": \"The name of a specific filter to apply the patch to.\",\n \"properties\": {\n \"name\": {\n \"description\": \"The filter name to match on.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"subFilter\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The filter name to match on.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name assigned to the filter chain.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"The SNI value used by a filter chain's match condition.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"transportProtocol\": {\n \"description\": \"Applies only to `SIDECAR_INBOUND` context.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Match a specific listener by its name.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"portName\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"proxy\": {\n \"description\": \"Match on properties associated with a proxy.\",\n \"properties\": {\n \"metadata\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"proxyVersion\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"routeConfiguration\": {\n \"description\": \"Match on envoy HTTP route configuration attributes.\",\n \"properties\": {\n \"gateway\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Route configuration name to match on.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"portName\": {\n \"description\": \"Applicable only for GATEWAY context.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"type\": \"integer\"\n },\n \"vhost\": {\n \"properties\": {\n \"name\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"route\": {\n \"description\": \"Match a specific route within the virtual host.\",\n \"properties\": {\n \"action\": {\n \"description\": \"Match a route with specific action type.\",\n \"enum\": [\n \"ANY\",\n \"ROUTE\",\n \"REDIRECT\",\n \"DIRECT_RESPONSE\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"patch\": {\n \"description\": \"The patch to apply along with the operation.\",\n \"properties\": {\n \"filterClass\": {\n \"description\": \"Determines the filter insertion order.\",\n \"enum\": [\n \"UNSPECIFIED\",\n \"AUTHN\",\n \"AUTHZ\",\n \"STATS\"\n ],\n \"type\": \"string\"\n },\n \"operation\": {\n \"description\": \"Determines how the patch should be applied.\",\n \"enum\": [\n \"INVALID\",\n \"MERGE\",\n \"ADD\",\n \"REMOVE\",\n \"INSERT_BEFORE\",\n \"INSERT_AFTER\",\n \"INSERT_FIRST\",\n \"REPLACE\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The JSON config of the object being patched.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workloadSelector\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Envoy Filter\",\n \"type\": \"object\"\n}", + "version": "networking.istio.io/v1alpha3" + }, + "configuration": null, + "description": "", + "displayName": "Envoy Filter", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/Gateway.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/Gateway.json new file mode 100644 index 00000000000..b82a3ee56de --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/Gateway.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Gateway", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting edge load balancer. See more details at: https://istio.io/docs/reference/config/networking/gateway.html\",\n \"properties\": {\n \"selector\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"servers\": {\n \"description\": \"A list of server specifications.\",\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"defaultEndpoint\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"hosts\": {\n \"description\": \"One or more hosts exposed by this gateway.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"An optional name of the server, when set must be unique across all servers.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"Set of TLS related options that govern the server's behavior.\",\n \"properties\": {\n \"caCertificates\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"Optional: If specified, only support the specified cipher list.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"credentialName\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"httpsRedirect\": {\n \"type\": \"boolean\"\n },\n \"maxProtocolVersion\": {\n \"description\": \"Optional: Maximum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"minProtocolVersion\": {\n \"description\": \"Optional: Minimum TLS protocol version.\",\n \"enum\": [\n \"TLS_AUTO\",\n \"TLSV1_0\",\n \"TLSV1_1\",\n \"TLSV1_2\",\n \"TLSV1_3\"\n ],\n \"type\": \"string\"\n },\n \"mode\": {\n \"enum\": [\n \"PASSTHROUGH\",\n \"SIMPLE\",\n \"MUTUAL\",\n \"AUTO_PASSTHROUGH\",\n \"ISTIO_MUTUAL\"\n ],\n \"type\": \"string\"\n },\n \"privateKey\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"serverCertificate\": {\n \"description\": \"REQUIRED if mode is `SIMPLE` or `MUTUAL`.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateHash\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verifyCertificateSpki\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Gateway\",\n \"type\": \"object\"\n}", + "version": "networking.istio.io/v1alpha3" + }, + "configuration": null, + "description": "", + "displayName": "Gateway", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/IstioOperator.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/IstioOperator.json new file mode 100644 index 00000000000..7a51191f2a3 --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/IstioOperator.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "IstioOperator", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired state of the istio control plane resource. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"type\": \"object\"\n }\n },\n \"title\": \"Istio Operator\"\n}", + "version": "install.istio.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Istio Operator", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/PeerAuthentication.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/PeerAuthentication.json new file mode 100644 index 00000000000..28ef9a73e0e --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/PeerAuthentication.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PeerAuthentication", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"PeerAuthentication defines how traffic will be tunneled (or not) to the sidecar.\",\n \"properties\": {\n \"mtls\": {\n \"description\": \"Mutual TLS settings for workload.\",\n \"properties\": {\n \"mode\": {\n \"description\": \"Defines the mTLS mode used for peer authentication.\",\n \"enum\": [\n \"UNSET\",\n \"DISABLE\",\n \"PERMISSIVE\",\n \"STRICT\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"portLevelMtls\": {\n \"additionalProperties\": {\n \"properties\": {\n \"mode\": {\n \"description\": \"Defines the mTLS mode used for peer authentication.\",\n \"enum\": [\n \"UNSET\",\n \"DISABLE\",\n \"PERMISSIVE\",\n \"STRICT\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Port specific mutual TLS settings.\",\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"The selector determines the workloads to apply the ChannelAuthentication on.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Peer Authentication\",\n \"type\": \"object\"\n}", + "version": "security.istio.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Peer Authentication", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/RequestAuthentication.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/RequestAuthentication.json new file mode 100644 index 00000000000..6c11285be9e --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/RequestAuthentication.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "RequestAuthentication", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"RequestAuthentication defines what request authentication methods are supported by a workload.\",\n \"properties\": {\n \"jwtRules\": {\n \"description\": \"Define the list of JWTs that can be validated at the selected workloads' proxy.\",\n \"items\": {\n \"properties\": {\n \"audiences\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"forwardOriginalToken\": {\n \"description\": \"If set to true, the orginal token will be kept for the ustream request.\",\n \"type\": \"boolean\"\n },\n \"fromHeaders\": {\n \"description\": \"List of header locations from which JWT is expected.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The HTTP header name.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"description\": \"The prefix that should be stripped before decoding the token.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"fromParams\": {\n \"description\": \"List of query parameters from which JWT is expected.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"issuer\": {\n \"description\": \"Identifies the issuer that issued the JWT.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"jwks\": {\n \"description\": \"JSON Web Key Set of public keys to validate signature of the JWT.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"jwksUri\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"jwks_uri\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"outputPayloadToHeader\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"The selector determines the workloads to apply the RequestAuthentication on.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Request Authentication\",\n \"type\": \"object\"\n}", + "version": "security.istio.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Request Authentication", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/ServiceEntry.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/ServiceEntry.json new file mode 100644 index 00000000000..4df69d3121b --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/ServiceEntry.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ServiceEntry", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting service registry. See more details at: https://istio.io/docs/reference/config/networking/service-entry.html\",\n \"properties\": {\n \"addresses\": {\n \"description\": \"The virtual IP addresses associated with the service.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"endpoints\": {\n \"description\": \"One or more endpoints associated with the service.\",\n \"items\": {\n \"properties\": {\n \"address\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"network\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this service is exported.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"hosts\": {\n \"description\": \"The hosts associated with the ServiceEntry.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"location\": {\n \"enum\": [\n \"MESH_EXTERNAL\",\n \"MESH_INTERNAL\"\n ],\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"The ports associated with the external service.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"resolution\": {\n \"description\": \"Service discovery mode for the hosts.\",\n \"enum\": [\n \"NONE\",\n \"STATIC\",\n \"DNS\"\n ],\n \"type\": \"string\"\n },\n \"subjectAltNames\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"workloadSelector\": {\n \"description\": \"Applicable only for MESH_INTERNAL services.\",\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Service Entry\",\n \"type\": \"object\"\n}", + "version": "networking.istio.io/v1alpha3" + }, + "configuration": null, + "description": "", + "displayName": "Service Entry", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/Sidecar.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/Sidecar.json new file mode 100644 index 00000000000..f78f4e3d5bf --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/Sidecar.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Sidecar", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting network reachability of a sidecar. See more details at: https://istio.io/docs/reference/config/networking/sidecar.html\",\n \"properties\": {\n \"egress\": {\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"captureMode\": {\n \"enum\": [\n \"DEFAULT\",\n \"IPTABLES\",\n \"NONE\"\n ],\n \"type\": \"string\"\n },\n \"hosts\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"The port associated with the listener.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ingress\": {\n \"items\": {\n \"properties\": {\n \"bind\": {\n \"description\": \"The IP to which the listener should be bound.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"captureMode\": {\n \"enum\": [\n \"DEFAULT\",\n \"IPTABLES\",\n \"NONE\"\n ],\n \"type\": \"string\"\n },\n \"defaultEndpoint\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port associated with the listener.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Label assigned to the port.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"A valid non-negative integer port number.\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"The protocol exposed on the port.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"outboundTrafficPolicy\": {\n \"description\": \"Configuration for the outbound traffic policy.\",\n \"properties\": {\n \"egressProxy\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"enum\": [\n \"REGISTRY_ONLY\",\n \"ALLOW_ANY\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workloadSelector\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Sidecar\",\n \"type\": \"object\"\n}", + "version": "networking.istio.io/v1alpha3" + }, + "configuration": null, + "description": "", + "displayName": "Sidecar", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/VirtualService.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/VirtualService.json new file mode 100644 index 00000000000..fa6cb34b581 --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/VirtualService.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "VirtualService", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html\",\n \"properties\": {\n \"exportTo\": {\n \"description\": \"A list of namespaces to which this virtual service is exported.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"The names of gateways and sidecars that should apply these routes.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"hosts\": {\n \"description\": \"The destination hosts to which traffic is being sent.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"http\": {\n \"description\": \"An ordered list of route rules for HTTP traffic.\",\n \"items\": {\n \"properties\": {\n \"corsPolicy\": {\n \"description\": \"Cross-Origin Resource Sharing policy (CORS).\",\n \"properties\": {\n \"allowCredentials\": {\n \"nullable\": true,\n \"type\": \"boolean\"\n },\n \"allowHeaders\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowMethods\": {\n \"description\": \"List of HTTP methods allowed to access the resource.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowOrigin\": {\n \"description\": \"The list of origins that are allowed to perform CORS requests.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowOrigins\": {\n \"description\": \"String patterns that match allowed origins.\",\n \"items\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"exposeHeaders\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxAge\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"delegate\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Name specifies the name of the delegate VirtualService.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace specifies the namespace where the delegate VirtualService resides.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fault\": {\n \"description\": \"Fault injection policy to apply on HTTP traffic at the client side.\",\n \"properties\": {\n \"abort\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpStatus\"\n ]\n },\n {\n \"required\": [\n \"grpcStatus\"\n ]\n },\n {\n \"required\": [\n \"http2Error\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpStatus\"\n ]\n },\n {\n \"required\": [\n \"grpcStatus\"\n ]\n },\n {\n \"required\": [\n \"http2Error\"\n ]\n }\n ],\n \"properties\": {\n \"grpcStatus\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"http2Error\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"httpStatus\": {\n \"description\": \"HTTP status code to use to abort the Http request.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"percentage\": {\n \"description\": \"Percentage of requests to be aborted with the error code provided.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"delay\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"fixedDelay\"\n ]\n },\n {\n \"required\": [\n \"exponentialDelay\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"fixedDelay\"\n ]\n },\n {\n \"required\": [\n \"exponentialDelay\"\n ]\n }\n ],\n \"properties\": {\n \"exponentialDelay\": {\n \"type\": \"string\"\n },\n \"fixedDelay\": {\n \"description\": \"Add a fixed delay before forwarding the request.\",\n \"type\": \"string\"\n },\n \"percent\": {\n \"description\": \"Percentage of requests on which the delay will be injected (0-100).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"percentage\": {\n \"description\": \"Percentage of requests on which the delay will be injected.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"headers\": {\n \"properties\": {\n \"request\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"response\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"match\": {\n \"items\": {\n \"properties\": {\n \"authority\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"ignoreUriCase\": {\n \"description\": \"Flag to specify whether the URI matching should be case-insensitive.\",\n \"type\": \"boolean\"\n },\n \"method\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name assigned to a match.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the ports on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"queryParams\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Query parameters for matching.\",\n \"type\": \"object\"\n },\n \"scheme\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"withoutHeaders\": {\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"exact\"\n ]\n },\n {\n \"required\": [\n \"prefix\"\n ]\n },\n {\n \"required\": [\n \"regex\"\n ]\n }\n ],\n \"properties\": {\n \"exact\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"prefix\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"withoutHeader has the same syntax with the header, but has opposite meaning.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"mirror\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mirrorPercent\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"mirrorPercentage\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"properties\": {\n \"value\": {\n \"format\": \"double\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"mirror_percent\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field.\",\n \"nullable\": true,\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"The name assigned to the route for debugging purposes.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"redirect\": {\n \"description\": \"A HTTP rule can either redirect or forward (default) traffic.\",\n \"properties\": {\n \"authority\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"redirectCode\": {\n \"type\": \"integer\"\n },\n \"uri\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"retries\": {\n \"description\": \"Retry policy for HTTP requests.\",\n \"properties\": {\n \"attempts\": {\n \"description\": \"Number of retries to be allowed for a given request.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"perTryTimeout\": {\n \"description\": \"Timeout per attempt for a given request, including the initial call and any retries.\",\n \"type\": \"string\"\n },\n \"retryOn\": {\n \"description\": \"Specifies the conditions under which retry takes place.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"retryRemoteLocalities\": {\n \"description\": \"Flag to specify whether the retries should retry to other localities.\",\n \"nullable\": true,\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"rewrite\": {\n \"description\": \"Rewrite HTTP URIs and Authority headers.\",\n \"properties\": {\n \"authority\": {\n \"description\": \"rewrite the Authority/Host header with this value.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"route\": {\n \"description\": \"A HTTP rule can either redirect or forward (default) traffic.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"headers\": {\n \"properties\": {\n \"request\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"response\": {\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"remove\": {\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"timeout\": {\n \"description\": \"Timeout for HTTP requests, default is disabled.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tcp\": {\n \"description\": \"An ordered list of route rules for opaque TCP traffic.\",\n \"items\": {\n \"properties\": {\n \"match\": {\n \"items\": {\n \"properties\": {\n \"destinationSubnets\": {\n \"description\": \"IPv4 or IPv6 ip addresses of destination with optional subnet.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"sourceSubnet\": {\n \"description\": \"IPv4 or IPv6 ip address of source with optional subnet.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"route\": {\n \"description\": \"The destination to which the connection should be forwarded to.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"items\": {\n \"properties\": {\n \"match\": {\n \"items\": {\n \"properties\": {\n \"destinationSubnets\": {\n \"description\": \"IPv4 or IPv6 ip addresses of destination with optional subnet.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"type\": \"integer\"\n },\n \"sniHosts\": {\n \"description\": \"SNI (server name indicator) to match on.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sourceLabels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"sourceNamespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"route\": {\n \"description\": \"The destination to which the connection should be forwarded to.\",\n \"items\": {\n \"properties\": {\n \"destination\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed.\",\n \"properties\": {\n \"number\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service.\",\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Virtual Service\",\n \"type\": \"object\"\n}", + "version": "networking.istio.io/v1alpha3" + }, + "configuration": null, + "description": "", + "displayName": "Virtual Service", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/WorkloadEntry.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/WorkloadEntry.json new file mode 100644 index 00000000000..34e39340164 --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/WorkloadEntry.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "WorkloadEntry", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Configuration affecting VMs onboarded into the mesh. See more details at: https://istio.io/docs/reference/config/networking/workload-entry.html\",\n \"properties\": {\n \"address\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"network\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Workload Entry\",\n \"type\": \"object\"\n}", + "version": "networking.istio.io/v1alpha3" + }, + "configuration": null, + "description": "", + "displayName": "Workload Entry", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/WorkloadGroup.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/WorkloadGroup.json new file mode 100644 index 00000000000..2fe12acc882 --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/components/WorkloadGroup.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "WorkloadGroup", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata that will be used for all corresponding `WorkloadEntries`.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"probe\": {\n \"description\": \"`ReadinessProbe` describes the configuration the user must provide for healthchecking on their workload.\",\n \"oneOf\": [\n {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\n \"httpGet\"\n ]\n },\n {\n \"required\": [\n \"tcpSocket\"\n ]\n },\n {\n \"required\": [\n \"exec\"\n ]\n }\n ]\n }\n },\n {\n \"required\": [\n \"httpGet\"\n ]\n },\n {\n \"required\": [\n \"tcpSocket\"\n ]\n },\n {\n \"required\": [\n \"exec\"\n ]\n }\n ],\n \"properties\": {\n \"exec\": {\n \"description\": \"Health is determined by how the command that is executed exited.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command to run.\",\n \"items\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Headers the proxy will pass on to make the request.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"value\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port on which the endpoint lives.\",\n \"type\": \"integer\"\n },\n \"scheme\": {\n \"format\": \"string\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before readiness probes are initiated.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"Health is determined by if the proxy is able to connect.\",\n \"properties\": {\n \"host\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"port\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template to be used for the generation of `WorkloadEntry` resources that belong to this `WorkloadGroup`.\",\n \"properties\": {\n \"address\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"description\": \"One or more labels associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"locality\": {\n \"description\": \"The locality associated with the endpoint.\",\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"network\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Set of ports associated with the endpoint.\",\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"format\": \"string\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"The load balancing weight associated with the endpoint.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Workload Group\",\n \"type\": \"object\"\n}", + "version": "networking.istio.io/v1alpha3" + }, + "configuration": null, + "description": "", + "displayName": "Workload Group", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "source_uri": "git://github.com/curiefense/curiefense/main/deploy/istio-helm/charts/base/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "svgColor": "\u003csvg width=\"161\" height=\"206\" viewBox=\"0 0 161 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"/\u003e\n\u003cpath d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"/\u003e\n\u003cpath d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.8\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"162\" height=\"206\" viewBox=\"0 0 162 206\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0)\"\u003e\n\u003cpath d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0\"\u003e\n\u003crect width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/curiefense/v1.5.0/v1.0.0/model.json b/server/meshmodel/curiefense/v1.5.0/v1.0.0/model.json new file mode 100644 index 00000000000..d58c2a949f4 --- /dev/null +++ b/server/meshmodel/curiefense/v1.5.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Provisioning" + }, + "displayName": "Curiefense", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#26becd", + "secondaryColor": "#3cc5d2", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 161 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M160.9 45.7V103.7C160.9 138.4 130.3 176.1 85.4 198.4V130.1L98 131.4C106.2 132.2 119.8 127.6 130 114.4C130.5 113.7 130.9 113.1 131.3 112.6C131.9 111.7 132.4 110.8 132.8 109.8L132.9 109.7C132.9 109.7 134.3 107.1 134.7 106.2C139.5 94.9 140.6 75.9 127.5 63.8C131.3 86.3 113.9 91.8 113.9 91.8C113.9 91.8 114 91.6 114.2 91.3C117 86.4 116.6 80.3 113.4 75.7C109.3 83.8 106.3 85.5 101.8 86.5L85.5 79.4V0L160.9 45.7Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.5 59.8001L26.1 143.2H42.7L73.9 128.9L75.5 129.1V205.8C30.6 183.5 0 145.7 0 111.1V53.0001L75.5 17.1001V59.8001Z\" fill=\"#26BECD\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M94.8 104.9C97.3957 104.9 99.5 102.796 99.5 100.2C99.5 97.6043 97.3957 95.5 94.8 95.5C92.2043 95.5 90.1 97.6043 90.1 100.2C90.1 102.796 92.2043 104.9 94.8 104.9Z\" fill=\"#436DB4\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.8\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 162 206\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M161.3 45.7V103.7C161.3 138.4 130.7 176.1 85.7999 198.4V130.1L98.3999 131.4C106.6 132.2 120.2 127.6 130.4 114.4C130.9 113.7 131.3 113.1 131.7 112.6C132.3 111.7 132.8 110.8 133.2 109.8L133.3 109.7C133.3 109.7 134.7 107.1 135.1 106.2C139.9 94.9 141 75.9 127.9 63.8C131.7 86.3 114.3 91.8 114.3 91.8C114.3 91.8 114.4 91.6 114.6 91.3C117.4 86.4 117 80.3 113.8 75.7C109.7 83.8 106.7 85.5 102.2 86.5L85.8999 79.4V0L161.3 45.7Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M75.8999 59.8L26.4999 143.3H43.0999L74.2999 129L75.8999 129.2V205.9C30.9999 183.6 0.399902 145.8 0.399902 111.2V53.0999L75.8999 17.2V59.8V59.8Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M95.1999 104.9C97.7957 104.9 99.8999 102.796 99.8999 100.2C99.8999 97.6042 97.7957 95.5 95.1999 95.5C92.6042 95.5 90.4999 97.6042 90.4999 100.2C90.4999 102.796 92.6042 104.9 95.1999 104.9Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"160.9\" height=\"205.9\" fill=\"white\" transform=\"translate(0.399902)\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v1.5.0" + }, + "name": "curiefense", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Security \u0026 Compliance", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogAgent.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogAgent.json new file mode 100644 index 00000000000..8e6df650a27 --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogAgent.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "DatadogAgent", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"features\": {\n \"properties\": {\n \"admissionController\": {\n \"properties\": {\n \"agentCommunicationMode\": {\n \"type\": \"string\"\n },\n \"agentSidecarInjection\": {\n \"properties\": {\n \"clusterAgentCommunicationEnabled\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"properties\": {\n \"jmxEnabled\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"pullPolicy\": {\n \"type\": \"string\"\n },\n \"pullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"tag\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"profiles\": {\n \"items\": {\n \"properties\": {\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"selectors\": {\n \"items\": {\n \"properties\": {\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"objectSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"cwsInstrumentation\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"failurePolicy\": {\n \"type\": \"string\"\n },\n \"mutateUnlabelled\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"type\": \"string\"\n },\n \"webhookName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"apm\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"hostPortConfig\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"instrumentation\": {\n \"properties\": {\n \"disabledNamespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"enabledNamespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"languageDetection\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"libVersions\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"unixDomainSocketConfig\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"asm\": {\n \"properties\": {\n \"iast\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"sca\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"threats\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"autoscaling\": {\n \"properties\": {\n \"workload\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterChecks\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"useClusterChecksRunners\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"cspm\": {\n \"properties\": {\n \"checkInterval\": {\n \"type\": \"string\"\n },\n \"customBenchmarks\": {\n \"properties\": {\n \"configData\": {\n \"type\": \"string\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"hostBenchmarks\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"cws\": {\n \"properties\": {\n \"customPolicies\": {\n \"properties\": {\n \"configData\": {\n \"type\": \"string\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"network\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"remoteConfiguration\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"securityProfiles\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"syscallMonitorEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"dogstatsd\": {\n \"properties\": {\n \"hostPortConfig\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"mapperProfiles\": {\n \"properties\": {\n \"configData\": {\n \"type\": \"string\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"originDetectionEnabled\": {\n \"type\": \"boolean\"\n },\n \"tagCardinality\": {\n \"type\": \"string\"\n },\n \"unixDomainSocketConfig\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"ebpfCheck\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"eventCollection\": {\n \"properties\": {\n \"collectKubernetesEvents\": {\n \"type\": \"boolean\"\n },\n \"collectedEventTypes\": {\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"type\": \"string\"\n },\n \"reasons\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"kind\",\n \"reasons\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"unbundleEvents\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"externalMetricsServer\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"endpoint\": {\n \"properties\": {\n \"credentials\": {\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"apiSecret\": {\n \"properties\": {\n \"keyName\": {\n \"type\": \"string\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"appKey\": {\n \"type\": \"string\"\n },\n \"appSecret\": {\n \"properties\": {\n \"keyName\": {\n \"type\": \"string\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"registerAPIService\": {\n \"type\": \"boolean\"\n },\n \"useDatadogMetrics\": {\n \"type\": \"boolean\"\n },\n \"wpaController\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"helmCheck\": {\n \"properties\": {\n \"collectEvents\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"valuesAsTags\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"kubeStateMetricsCore\": {\n \"properties\": {\n \"conf\": {\n \"properties\": {\n \"configData\": {\n \"type\": \"string\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"liveContainerCollection\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"liveProcessCollection\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"scrubProcessArguments\": {\n \"type\": \"boolean\"\n },\n \"stripProcessArguments\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"logCollection\": {\n \"properties\": {\n \"containerCollectAll\": {\n \"type\": \"boolean\"\n },\n \"containerCollectUsingFiles\": {\n \"type\": \"boolean\"\n },\n \"containerLogsPath\": {\n \"type\": \"string\"\n },\n \"containerSymlinksPath\": {\n \"type\": \"string\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"openFilesLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"podLogsPath\": {\n \"type\": \"string\"\n },\n \"tempStoragePath\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"npm\": {\n \"properties\": {\n \"collectDNSStats\": {\n \"type\": \"boolean\"\n },\n \"enableConntrack\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"oomKill\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"orchestratorExplorer\": {\n \"properties\": {\n \"conf\": {\n \"properties\": {\n \"configData\": {\n \"type\": \"string\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"customResources\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"ddUrl\": {\n \"type\": \"string\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"extraTags\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrubContainers\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"otlp\": {\n \"properties\": {\n \"receiver\": {\n \"properties\": {\n \"protocols\": {\n \"properties\": {\n \"grpc\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"endpoint\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"endpoint\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"processDiscovery\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prometheusScrape\": {\n \"properties\": {\n \"additionalConfigs\": {\n \"type\": \"string\"\n },\n \"enableServiceEndpoints\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"version\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"remoteConfiguration\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"sbom\": {\n \"properties\": {\n \"containerImage\": {\n \"properties\": {\n \"analyzers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"overlayFSDirectScan\": {\n \"type\": \"boolean\"\n },\n \"uncompressedLayersSupport\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"host\": {\n \"properties\": {\n \"analyzers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tcpQueueLength\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"usm\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"global\": {\n \"properties\": {\n \"clusterAgentToken\": {\n \"type\": \"string\"\n },\n \"clusterAgentTokenSecret\": {\n \"properties\": {\n \"keyName\": {\n \"type\": \"string\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"clusterName\": {\n \"type\": \"string\"\n },\n \"containerStrategy\": {\n \"type\": \"string\"\n },\n \"credentials\": {\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"apiSecret\": {\n \"properties\": {\n \"keyName\": {\n \"type\": \"string\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"appKey\": {\n \"type\": \"string\"\n },\n \"appSecret\": {\n \"properties\": {\n \"keyName\": {\n \"type\": \"string\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"criSocketPath\": {\n \"type\": \"string\"\n },\n \"disableNonResourceRules\": {\n \"type\": \"boolean\"\n },\n \"dockerSocketPath\": {\n \"type\": \"string\"\n },\n \"endpoint\": {\n \"properties\": {\n \"credentials\": {\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"apiSecret\": {\n \"properties\": {\n \"keyName\": {\n \"type\": \"string\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"appKey\": {\n \"type\": \"string\"\n },\n \"appSecret\": {\n \"properties\": {\n \"keyName\": {\n \"type\": \"string\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fips\": {\n \"properties\": {\n \"customFIPSConfig\": {\n \"properties\": {\n \"configData\": {\n \"type\": \"string\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"properties\": {\n \"jmxEnabled\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"pullPolicy\": {\n \"type\": \"string\"\n },\n \"pullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"tag\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"localAddress\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portRange\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"useHTTPS\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"kubelet\": {\n \"properties\": {\n \"agentCAPath\": {\n \"type\": \"string\"\n },\n \"host\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"hostCAPath\": {\n \"type\": \"string\"\n },\n \"tlsVerify\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"localService\": {\n \"properties\": {\n \"forceEnableLocalService\": {\n \"type\": \"boolean\"\n },\n \"nameOverride\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"logLevel\": {\n \"type\": \"string\"\n },\n \"namespaceAnnotationsAsTags\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"namespaceLabelsAsTags\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"networkPolicy\": {\n \"properties\": {\n \"create\": {\n \"type\": \"boolean\"\n },\n \"dnsSelectorEndpoints\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"flavor\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeLabelsAsTags\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"originDetectionUnified\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"podAnnotationsAsTags\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"podLabelsAsTags\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"site\": {\n \"type\": \"string\"\n },\n \"tags\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"override\": {\n \"additionalProperties\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"containers\": {\n \"additionalProperties\": {\n \"properties\": {\n \"appArmorProfileName\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"healthPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logLevel\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompConfig\": {\n \"properties\": {\n \"customProfile\": {\n \"properties\": {\n \"configData\": {\n \"type\": \"string\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"customRootPath\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\",\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"createRbac\": {\n \"type\": \"boolean\"\n },\n \"customConfigurations\": {\n \"additionalProperties\": {\n \"properties\": {\n \"configData\": {\n \"type\": \"string\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"disabled\": {\n \"type\": \"boolean\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"extraChecksd\": {\n \"properties\": {\n \"configDataMap\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"extraConfd\": {\n \"properties\": {\n \"configDataMap\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"key\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"properties\": {\n \"jmxEnabled\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"pullPolicy\": {\n \"type\": \"string\"\n },\n \"pullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"tag\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"updateStrategy\": {\n \"properties\": {\n \"rollingUpdate\": {\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Datadog Agent\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v2alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Datadog Agent", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "round-rectangle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogAgentProfile.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogAgentProfile.json new file mode 100644 index 00000000000..afe7b4e8918 --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogAgentProfile.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DatadogAgentProfile", + "schema": "{\n \"description\": \"DatadogAgentProfile is the Schema for the datadogagentprofiles API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DatadogAgentProfileSpec defines the desired state of DatadogAgentProfile\",\n \"properties\": {\n \"config\": {\n \"properties\": {\n \"override\": {\n \"additionalProperties\": {\n \"properties\": {\n \"containers\": {\n \"additionalProperties\": {\n \"properties\": {\n \"env\": {\n \"description\": \"Specify additional environment variables in the container.\\nSee also: https://docs.datadoghq.com/agent/guide/environment-variables/\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"resources\": {\n \"description\": \"Specify the Request and Limits of the pods.\\nTo get guaranteed QoS class, specify requests and limits equal.\\nSee also: http://kubernetes.io/docs/user-guide/compute-resources/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Configure the basic configurations for an Agent container\\nValid Agent container names are: `agent`\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels provide labels that are added to the Datadog Agent pods.\",\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"profileAffinity\": {\n \"properties\": {\n \"profileNodeAffinity\": {\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Datadog Agent Profile\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Datadog Agent Profile", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "svgColor": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\n\tL670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\n\tc6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\n\tL0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\n\tc18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\n\ts-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\n\tc-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\n\tc6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\n\tc10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\n\tc-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\n\ts11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\n\tc-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\n\tc17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\n\tc11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\n\tc9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\n\tc32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\n\tc-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\n\tc-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\n\tc2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\n\tc2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\n\tc-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\n\tc-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\n\tc19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\n\tc-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\n\tc16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\n\tc-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\n\tc8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\n\tc-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\n\tc-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\n\tc18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\n\tc5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\n\tc5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\n\tC401.49,268.05,386.84,271.12,397.85,260.65\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\n\tc1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\n\tc-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\n\tc12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\n\tc-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\n\tc0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\n\tc-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\n\tc1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\n\tc-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\n\tc19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\n\tc6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\n\tc-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\n\tc1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\n\tc5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\n\tC519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\n\tc6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\n\tc2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\n\tc-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\n\ts12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\n\tc-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\n\tc2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\n\tc5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\n\tc15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\n\tc-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\n\tc4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\n\tc6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\n\tc47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\n\tc-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\n\tc15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\n\tL687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\n\tc-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"/\u003e\n\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogMetric.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogMetric.json new file mode 100644 index 00000000000..71e45138b67 --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogMetric.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "DatadogMetric", + "schema": "{\n \"description\": \"DatadogMetric allows autoscaling on arbitrary Datadog query\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DatadogMetricSpec defines the desired state of DatadogMetric\",\n \"properties\": {\n \"externalMetricName\": {\n \"description\": \"ExternalMetricName is reserved for internal use\",\n \"type\": \"string\"\n },\n \"maxAge\": {\n \"description\": \"MaxAge provides the max age for the metric query (overrides the default setting\\n`external_metrics_provider.max_age`)\",\n \"type\": \"string\"\n },\n \"query\": {\n \"description\": \"Query is the raw datadog query\",\n \"type\": \"string\"\n },\n \"timeWindow\": {\n \"description\": \"TimeWindow provides the time window for the metric query, defaults to MaxAge.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Datadog Metric\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Datadog Metric", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 134.95 135.02\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#00d3a9}.cls-2{fill:#00b39f}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003emeshery-logo-light\u003c/title\u003e\u003cpolygon points=\"69.49 31.82 69.49 64.07 97.44 47.89 69.49 31.82\" class=\"cls-1\"/\u003e\u003cpolygon points=\"69.49 70.81 69.49 103.22 97.7 87.09 69.49 70.81\" class=\"cls-1\"/\u003e\u003cpolygon points=\"65.47 63.85 65.47 32.09 37.87 47.92 65.47 63.85\" class=\"cls-2\"/\u003e\u003cpath d=\"M10.1,103.1a67.79,67.79,0,0,0,21.41,21.55V90.71Z\" class=\"cls-2\"/\u003e\u003cpolygon points=\"65.47 103.06 65.47 71.05 37.8 87.07 65.47 103.06\" class=\"cls-2\"/\u003e\u003cpolygon points=\"35.54 122.63 63.56 106.61 35.54 90.41 35.54 122.63\" class=\"cls-1\"/\u003e\u003cpolygon points=\"99.61 122.8 99.61 90.63 71.63 106.63 99.61 122.8\" class=\"cls-2\"/\u003e\u003cpath d=\"M127,99.37a67.22,67.22,0,0,0,7.91-28.94L105.78,87.11Z\" class=\"cls-2\"/\u003e\u003cpolygon points=\"103.64 83.69 131.76 67.61 103.64 51.45 103.64 83.69\" class=\"cls-1\"/\u003e\u003cpolygon points=\"99.61 44.5 99.61 12.52 71.76 28.49 99.61 44.5\" class=\"cls-2\"/\u003e\u003cpolygon points=\"99.61 83.55 99.61 51.28 71.7 67.44 99.61 83.55\" class=\"cls-2\"/\u003e\u003cpolygon points=\"67.48 135.02 67.49 135.02 67.48 135.02 67.48 135.02\" class=\"cls-2\"/\u003e\u003cpolygon points=\"35.54 51.22 35.54 83.73 63.66 67.45 35.54 51.22\" class=\"cls-1\"/\u003e\u003cpath d=\"M65.47,0A67.2,67.2,0,0,0,35.83,7.83l29.64,17Z\" class=\"cls-2\"/\u003e\u003cpolygon points=\"35.54 12.3 35.54 44.62 63.68 28.48 35.54 12.3\" class=\"cls-1\"/\u003e\u003cpath d=\"M31.51,10.34A67.89,67.89,0,0,0,10.1,31.89L31.51,44.25Z\" class=\"cls-2\"/\u003e\u003cpath d=\"M99.43,8A67.23,67.23,0,0,0,69.49,0V25.15Z\" class=\"cls-1\"/\u003e\u003cpath d=\"M0,69.87A67.27,67.27,0,0,0,8.07,99.63L29.76,87.07Z\" class=\"cls-1\"/\u003e\u003cpath d=\"M8.07,35.37A67.16,67.16,0,0,0,0,65L29.79,47.91Z\" class=\"cls-1\"/\u003e\u003cpath d=\"M35.78,127.13A67.13,67.13,0,0,0,65.47,135V110.15Z\" class=\"cls-2\"/\u003e\u003cpath d=\"M124.92,32a67.9,67.9,0,0,0-21.28-21.52V44.3Z\" class=\"cls-1\"/\u003e\u003cpath d=\"M103.64,124.54A68,68,0,0,0,125,102.86L103.64,90.52Z\" class=\"cls-1\"/\u003e\u003cpath d=\"M135,64.81a67.06,67.06,0,0,0-8-29.35L105.49,47.88Z\" class=\"cls-2\"/\u003e\u003cpath d=\"M69.49,135a67.12,67.12,0,0,0,29.63-7.83L69.49,110Z\" class=\"cls-1\"/\u003e\u003cpolygon points=\"31.51 83.44 31.51 51.56 3.83 67.43 31.51 83.44\" class=\"cls-2\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogMonitor.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogMonitor.json new file mode 100644 index 00000000000..5a9b795a49c --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogMonitor.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DatadogMonitor", + "schema": "{\n \"description\": \"DatadogMonitor allows to define and manage Monitors from your Kubernetes Cluster\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DatadogMonitorSpec defines the desired state of DatadogMonitor\",\n \"properties\": {\n \"controllerOptions\": {\n \"description\": \"ControllerOptions are the optional parameters in the DatadogMonitor controller\",\n \"properties\": {\n \"disableRequiredTags\": {\n \"description\": \"DisableRequiredTags disables the automatic addition of required tags to monitors.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Message is a message to include with notifications for this monitor\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the monitor name\",\n \"type\": \"string\"\n },\n \"options\": {\n \"description\": \"Options are the optional parameters associated with your monitor\",\n \"properties\": {\n \"enableLogsSample\": {\n \"description\": \"A Boolean indicating whether to send a log sample when the log monitor triggers.\",\n \"type\": \"boolean\"\n },\n \"escalationMessage\": {\n \"description\": \"A message to include with a re-notification.\",\n \"type\": \"string\"\n },\n \"evaluationDelay\": {\n \"description\": \"Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the value is set to 300 (5min),\\nthe timeframe is set to last_5m and the time is 7:00, the monitor evaluates data from 6:50 to 6:55.\\nThis is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor always has data during evaluation.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"groupbySimpleMonitor\": {\n \"description\": \"A Boolean indicating whether the log alert monitor triggers a single alert or multiple alerts when any group breaches a threshold.\",\n \"type\": \"boolean\"\n },\n \"includeTags\": {\n \"description\": \"A Boolean indicating whether notifications from this monitor automatically inserts its triggering tags into the title.\",\n \"type\": \"boolean\"\n },\n \"locked\": {\n \"description\": \"DEPRECATED: Whether or not the monitor is locked (only editable by creator and admins). Use `restricted_roles` instead.\",\n \"type\": \"boolean\"\n },\n \"newGroupDelay\": {\n \"description\": \"Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of\\nmonitor results. Should be a non negative integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"noDataTimeframe\": {\n \"description\": \"The number of minutes before a monitor notifies after data stops reporting. Datadog recommends at least 2x the\\nmonitor timeframe for metric alerts or 2 minutes for service checks. If omitted, 2x the evaluation timeframe\\nis used for metric alerts, and 24 hours is used for service checks.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"notificationPresetName\": {\n \"description\": \"An enum that toggles the display of additional content sent in the monitor notification.\",\n \"type\": \"string\"\n },\n \"notifyAudit\": {\n \"description\": \"A Boolean indicating whether tagged users are notified on changes to this monitor.\",\n \"type\": \"boolean\"\n },\n \"notifyBy\": {\n \"description\": \"A string indicating the granularity a monitor alerts on. Only available for monitors with groupings.\\nFor instance, a monitor grouped by cluster, namespace, and pod can be configured to only notify on each new\\ncluster violating the alert conditions by setting notify_by to [\\\"cluster\\\"]. Tags mentioned in notify_by must\\nbe a subset of the grouping tags in the query. For example, a query grouped by cluster and namespace cannot\\nnotify on region. Setting notify_by to [*] configures the monitor to notify as a simple-alert.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"notifyNoData\": {\n \"description\": \"A Boolean indicating whether this monitor notifies when data stops reporting.\",\n \"type\": \"boolean\"\n },\n \"onMissingData\": {\n \"description\": \"An enum that controls how groups or monitors are treated if an evaluation does not return data points.\\nThe default option results in different behavior depending on the monitor query type.\\nFor monitors using Count queries, an empty monitor evaluation is treated as 0 and is compared to the threshold conditions.\\nFor monitors using any query type other than Count, for example Gauge, Measure, or Rate, the monitor shows the last known status.\\nThis option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors\",\n \"type\": \"string\"\n },\n \"renotifyInterval\": {\n \"description\": \"The number of minutes after the last notification before a monitor re-notifies on the current status.\\nIt only re-notifies if it’s not resolved.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"renotifyOccurrences\": {\n \"description\": \"The number of times re-notification messages should be sent on the current status at the provided re-notification interval.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"renotifyStatuses\": {\n \"description\": \"The types of statuses for which re-notification messages should be sent. Valid values are alert, warn, no data.\",\n \"items\": {\n \"description\": \"MonitorRenotifyStatusType The different statuses for which renotification is supported.\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"requireFullWindow\": {\n \"description\": \"A Boolean indicating whether this monitor needs a full window of data before it’s evaluated. We highly\\nrecommend you set this to false for sparse metrics, otherwise some evaluations are skipped. Default is false.\",\n \"type\": \"boolean\"\n },\n \"thresholdWindows\": {\n \"description\": \"A struct of the alerting time window options.\",\n \"properties\": {\n \"recoveryWindow\": {\n \"description\": \"Describes how long an anomalous metric must be normal before the alert recovers.\",\n \"type\": \"string\"\n },\n \"triggerWindow\": {\n \"description\": \"Describes how long a metric must be anomalous before an alert triggers.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"thresholds\": {\n \"description\": \"A struct of the different monitor threshold values.\",\n \"properties\": {\n \"critical\": {\n \"description\": \"The monitor CRITICAL threshold.\",\n \"type\": \"string\"\n },\n \"criticalRecovery\": {\n \"description\": \"The monitor CRITICAL recovery threshold.\",\n \"type\": \"string\"\n },\n \"ok\": {\n \"description\": \"The monitor OK threshold.\",\n \"type\": \"string\"\n },\n \"unknown\": {\n \"description\": \"The monitor UNKNOWN threshold.\",\n \"type\": \"string\"\n },\n \"warning\": {\n \"description\": \"The monitor WARNING threshold.\",\n \"type\": \"string\"\n },\n \"warningRecovery\": {\n \"description\": \"The monitor WARNING recovery threshold.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"timeoutH\": {\n \"description\": \"The number of hours of the monitor not reporting data before it automatically resolves from a triggered state.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"priority\": {\n \"description\": \"Priority is an integer from 1 (high) to 5 (low) indicating alert severity\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"query\": {\n \"description\": \"Query is the Datadog monitor query\",\n \"type\": \"string\"\n },\n \"restrictedRoles\": {\n \"description\": \"RestrictedRoles is a list of unique role identifiers to define which roles are allowed to edit the monitor.\\n`restricted_roles` is the successor of `locked`. For more information about `locked` and `restricted_roles`,\\nsee the [monitor options docs](https://docs.datadoghq.com/monitors/guide/monitor_api_options/#permissions-options).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"tags\": {\n \"description\": \"Tags is the monitor tags associated with your monitor\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"type\": {\n \"description\": \"Type is the monitor type\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Datadog Monitor\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Datadog Monitor", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "svgColor": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\n\tL670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\n\tc6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\n\tL0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\n\tc18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\n\ts-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\n\tc-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\n\tc6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\n\tc10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\n\tc-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\n\ts11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\n\tc-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\n\tc17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\n\tc11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\n\tc9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\n\tc32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\n\tc-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\n\tc-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\n\tc2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\n\tc2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\n\tc-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\n\tc-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\n\tc19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\n\tc-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\n\tc16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\n\tc-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\n\tc8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\n\tc-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\n\tc-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\n\tc18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\n\tc5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\n\tc5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\n\tC401.49,268.05,386.84,271.12,397.85,260.65\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\n\tc1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\n\tc-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\n\tc12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\n\tc-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\n\tc0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\n\tc-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\n\tc1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\n\tc-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\n\tc19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\n\tc6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\n\tc-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\n\tc1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\n\tc5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\n\tC519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\n\tc6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\n\tc2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\n\tc-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\n\ts12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\n\tc-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\n\tc2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\n\tc5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\n\tc15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\n\tc-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\n\tc4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\n\tc6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\n\tc47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\n\tc-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\n\tc15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\n\tL687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\n\tc-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"/\u003e\n\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogPodAutoscaler.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogPodAutoscaler.json new file mode 100644 index 00000000000..f8c886098e5 --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogPodAutoscaler.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DatadogPodAutoscaler", + "schema": "{\n \"description\": \"DatadogPodAutoscaler is the Schema for the datadogpodautoscalers API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DatadogPodAutoscalerSpec defines the desired state of DatadogPodAutoscaler\",\n \"properties\": {\n \"constraints\": {\n \"description\": \"Constraints defines constraints that should always be respected.\",\n \"properties\": {\n \"containers\": {\n \"description\": \"Containers defines constraints for the containers.\",\n \"items\": {\n \"description\": \"DatadogPodAutoscalerContainerConstraints defines constraints that should always be respected for a container.\\nIf no constraints are set, it enables resources scaling for all containers without any constraints.\",\n \"properties\": {\n \"enabled\": {\n \"description\": \"Enabled false allows to disable resources autoscaling for the container. Default to true.\",\n \"type\": \"boolean\"\n },\n \"limits\": {\n \"description\": \"Limits defines the constraints for the limits of the container.\",\n \"properties\": {\n \"maxAllowed\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"MaxAllowed is the upper limit for the requests of the container.\",\n \"type\": \"object\"\n },\n \"minAllowed\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"MinAllowed is the lower limit for the requests of the container.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the name of the container. Can be \\\"*\\\" to apply to all containers.\",\n \"type\": \"string\"\n },\n \"requests\": {\n \"description\": \"Requests defines the constraints for the requests of the container.\",\n \"properties\": {\n \"maxAllowed\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"MaxAllowed is the upper limit for the requests of the container.\",\n \"type\": \"object\"\n },\n \"minAllowed\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"MinAllowed is the lower limit for the requests of the container.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"maxReplicas\": {\n \"description\": \"MaxReplicas is the upper limit for the number of POD replicas. Needs to be \\u003e= minReplicas.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minReplicas\": {\n \"description\": \"MinReplicas is the lower limit for the number of POD replicas. Needs to be \\u003e= 1. Default to 1.\",\n \"format\": \"int32\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"maxReplicas\"\n ],\n \"type\": \"object\"\n },\n \"owner\": {\n \"description\": \"Owner defines the source of truth for this object (local or remote)\\nValue needs to be set when a DatadogPodAutoscaler object is created.\",\n \"enum\": [\n \"Local\",\n \"Remote\"\n ],\n \"type\": \"string\"\n },\n \"policy\": {\n \"default\": {},\n \"description\": \"Policy defines how recommendations should be applied.\",\n \"properties\": {\n \"applyMode\": {\n \"default\": \"All\",\n \"description\": \"ApplyMode determines recommendations that should be applied by the controller:\\n- All: Apply all recommendations (regular and manual).\\n- Manual: Apply only manual recommendations (recommendations manually validated by user in the Datadog app).\\n- None: Prevent the controller to apply any recommendations.\\nIt's also possible to selectively deactivate upscale, downscale or update actions thanks to the `Upscale`, `Downscale` and `Update` fields.\",\n \"enum\": [\n \"All\",\n \"Manual\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"downscale\": {\n \"description\": \"Downscale defines the policy to scale down the target resource.\",\n \"properties\": {\n \"rules\": {\n \"description\": \"Rules is a list of potential scaling polices which can be used during scaling.\\nAt least one policy must be specified, otherwise the DatadogPodAutoscalerScalingPolicy will be discarded as invalid\",\n \"items\": {\n \"description\": \"DatadogPodAutoscalerScalingRule define rules for horizontal that should be true for a certain amount of time.\",\n \"properties\": {\n \"match\": {\n \"description\": \"Match defines if the rule should be considered or not in the calculation.\\nDefault to Always if not set.\",\n \"enum\": [\n \"Always\",\n \"IfScalingEvent\"\n ],\n \"type\": \"string\"\n },\n \"periodSeconds\": {\n \"description\": \"PeriodSeconds specifies the window of time for which the policy should hold true.\\nPeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\",\n \"format\": \"int32\",\n \"maximum\": 1800,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Type is used to specify the scaling policy.\",\n \"enum\": [\n \"Pods\",\n \"Percent\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value contains the amount of change which is permitted by the policy.\\nSetting it to 0 will prevent any scaling in this direction and should not be used unless Match is set to IfScalingEvent.\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"periodSeconds\",\n \"type\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"strategy\": {\n \"description\": \"Strategy is used to specify which policy should be used.\\nIf not set, the default value Max is used.\",\n \"enum\": [\n \"Max\",\n \"Min\",\n \"Disabled\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"update\": {\n \"description\": \"Update defines the policy to update target resource.\",\n \"properties\": {\n \"strategy\": {\n \"description\": \"Mode defines the mode of the update policy.\",\n \"enum\": [\n \"Auto\",\n \"Disabled\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"upscale\": {\n \"description\": \"Upscale defines the policy to scale up the target resource.\",\n \"properties\": {\n \"rules\": {\n \"description\": \"Rules is a list of potential scaling polices which can be used during scaling.\\nAt least one policy must be specified, otherwise the DatadogPodAutoscalerScalingPolicy will be discarded as invalid\",\n \"items\": {\n \"description\": \"DatadogPodAutoscalerScalingRule define rules for horizontal that should be true for a certain amount of time.\",\n \"properties\": {\n \"match\": {\n \"description\": \"Match defines if the rule should be considered or not in the calculation.\\nDefault to Always if not set.\",\n \"enum\": [\n \"Always\",\n \"IfScalingEvent\"\n ],\n \"type\": \"string\"\n },\n \"periodSeconds\": {\n \"description\": \"PeriodSeconds specifies the window of time for which the policy should hold true.\\nPeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\",\n \"format\": \"int32\",\n \"maximum\": 1800,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Type is used to specify the scaling policy.\",\n \"enum\": [\n \"Pods\",\n \"Percent\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value contains the amount of change which is permitted by the policy.\\nSetting it to 0 will prevent any scaling in this direction and should not be used unless Match is set to IfScalingEvent.\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"periodSeconds\",\n \"type\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"strategy\": {\n \"description\": \"Strategy is used to specify which policy should be used.\\nIf not set, the default value Max is used.\",\n \"enum\": [\n \"Max\",\n \"Min\",\n \"Disabled\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"remoteVersion\": {\n \"description\": \"RemoteVersion is the version of the .Spec currently store in this object.\\nOnly set if the owner is Remote.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"targetRef\": {\n \"description\": \"TargetRef is the reference to the resource to scale.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"apiVersion is the API version of the referent\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"targets\": {\n \"description\": \"Targets are objectives to reach and maintain for the target resource.\\nDefault to a single target to maintain 80% POD CPU utilization.\",\n \"items\": {\n \"description\": \"DatadogPodAutoscalerTarget defines the objectives to reach and maintain for the target resource.\",\n \"properties\": {\n \"containerResource\": {\n \"description\": \"ContainerResource allows to set a container-level resource target.\",\n \"properties\": {\n \"container\": {\n \"description\": \"Container is the name of the container.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of the resource.\",\n \"enum\": [\n \"cpu\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is the value of the target.\",\n \"properties\": {\n \"absolute\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Absolute defines the absolute value of the target (for instance 500 millicores).\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": {\n \"description\": \"Type specifies how the value is expressed (Absolute or Utilization).\",\n \"type\": \"string\"\n },\n \"utilization\": {\n \"description\": \"Utilization defines a percentage of the target compared to requested resource\",\n \"format\": \"int32\",\n \"maximum\": 100,\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"container\",\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"podResource\": {\n \"description\": \"PodResource allows to set a POD-level resource target.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the resource.\",\n \"enum\": [\n \"cpu\"\n ],\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is the value of the target.\",\n \"properties\": {\n \"absolute\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Absolute defines the absolute value of the target (for instance 500 millicores).\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": {\n \"description\": \"Type specifies how the value is expressed (Absolute or Utilization).\",\n \"type\": \"string\"\n },\n \"utilization\": {\n \"description\": \"Utilization defines a percentage of the target compared to requested resource\",\n \"format\": \"int32\",\n \"maximum\": 100,\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type sets the type of the target.\",\n \"enum\": [\n \"PodResource\",\n \"ContainerResource\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"owner\",\n \"targetRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Datadog Pod Autoscaler\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Datadog Pod Autoscaler", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "svgColor": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\n\tL670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\n\tc6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\n\tL0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\n\tc18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\n\ts-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\n\tc-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\n\tc6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\n\tc10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\n\tc-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\n\ts11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\n\tc-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\n\tc17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\n\tc11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\n\tc9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\n\tc32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\n\tc-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\n\tc-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\n\tc2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\n\tc2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\n\tc-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\n\tc-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\n\tc19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\n\tc-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\n\tc16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\n\tc-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\n\tc8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\n\tc-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\n\tc-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\n\tc18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\n\tc5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\n\tc5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\n\tC401.49,268.05,386.84,271.12,397.85,260.65\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\n\tc1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\n\tc-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\n\tc12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\n\tc-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\n\tc0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\n\tc-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\n\tc1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\n\tc-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\n\tc19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\n\tc6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\n\tc-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\n\tc1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\n\tc5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\n\tC519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\n\tc6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\n\tc2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\n\tc-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\n\ts12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\n\tc-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\n\tc2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\n\tc5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\n\tc15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\n\tc-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\n\tc4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\n\tc6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\n\tc47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\n\tc-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\n\tc15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\n\tL687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\n\tc-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"/\u003e\n\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogSLO.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogSLO.json new file mode 100644 index 00000000000..f769677ef7a --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/DatadogSLO.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DatadogSLO", + "schema": "{\n \"description\": \"DatadogSLO allows a user to define and manage datadog SLOs from Kubernetes cluster.\",\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"controllerOptions\": {\n \"description\": \"ControllerOptions are the optional parameters in the DatadogSLO controller\",\n \"properties\": {\n \"disableRequiredTags\": {\n \"description\": \"DisableRequiredTags disables the automatic addition of required tags to SLOs.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": {\n \"description\": \"Description is a user-defined description of the service level objective.\\nAlways included in service level objective responses (but may be null). Optional in create/update requests.\",\n \"type\": \"string\"\n },\n \"groups\": {\n \"description\": \"Groups is a list of (up to 100) monitor groups that narrow the scope of a monitor service level objective.\\nIncluded in service level objective responses if it is not empty.\\nOptional in create/update requests for monitor service level objectives, but may only be used when the length of the monitor_ids field is one.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"monitorIDs\": {\n \"description\": \"MonitorIDs is a list of monitor IDs that defines the scope of a monitor service level objective. Required if type is monitor.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"name\": {\n \"description\": \"Name is the name of the service level objective.\",\n \"type\": \"string\"\n },\n \"query\": {\n \"description\": \"Query is the query for a metric-based SLO. Required if type is metric.\\nNote that only the `sum by` aggregator is allowed, which sums all request counts. `Average`, `max`, nor `min` request aggregators are not supported.\",\n \"properties\": {\n \"denominator\": {\n \"description\": \"Denominator is a Datadog metric query for total (valid) events.\",\n \"type\": \"string\"\n },\n \"numerator\": {\n \"description\": \"Numerator is a Datadog metric query for good events.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"denominator\",\n \"numerator\"\n ],\n \"type\": \"object\"\n },\n \"tags\": {\n \"description\": \"Tags is a list of tags to associate with your service level objective.\\nThis can help you categorize and filter service level objectives in the service level objectives page of the UI.\\nNote: it's not currently possible to filter by these tags when querying via the API.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"targetThreshold\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"TargetThreshold is the target threshold such that when the service level indicator is above this threshold over the given timeframe, the objective is being met.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"timeframe\": {\n \"description\": \"The SLO time window options.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the service level objective.\",\n \"type\": \"string\"\n },\n \"warningThreshold\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"WarningThreshold is a optional warning threshold such that when the service level indicator is below this value for the given threshold, but above the target threshold, the objective appears in a \\\"warning\\\" state. This value must be greater than the target threshold.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"name\",\n \"targetThreshold\",\n \"timeframe\",\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Datadog SLO\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Datadog SLO", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "svgColor": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\n\tL670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\n\tc6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\n\tL0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\n\tc18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\n\ts-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\n\tc-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\n\tc6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\n\tc10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\n\tc-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\n\ts11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\n\tc-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\n\tc17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\n\tc11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\n\tc9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\n\tc32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\n\tc-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\n\tc-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\n\tc2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\n\tc2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\n\tc-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\n\tc-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\n\tc19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\n\tc-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\n\tc16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\n\tc-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\n\tc8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\n\tc-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\n\tc-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\n\tc18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\n\tc5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\n\tc5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\n\tC401.49,268.05,386.84,271.12,397.85,260.65\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\n\tc1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\n\tc-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\n\tc12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\n\tc-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\n\tc0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\n\tc-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\n\tc1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\n\tc-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\n\tc19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\n\tc6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\n\tc-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\n\tc1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\n\tc5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\n\tC519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\n\tc6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\n\tc2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\n\tc-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\n\ts12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\n\tc-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\n\tc2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\n\tc5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\n\tc15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\n\tc-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\n\tc4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\n\tc6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\n\tc47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\n\tc-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\n\tc15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\n\tL687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\n\tc-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"/\u003e\n\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonSet.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonSet.json new file mode 100644 index 00000000000..285b61cac9a --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonSet.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ExtendedDaemonSet", + "schema": "{\n \"description\": \"ExtendedDaemonSet is the Schema for the extendeddaemonsets API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ExtendedDaemonSetSpec defines the desired state of ExtendedDaemonSet\",\n \"properties\": {\n \"selector\": {\n \"description\": \"A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"strategy\": {\n \"description\": \"Daemonset deployment strategy.\",\n \"properties\": {\n \"canary\": {\n \"description\": \"Canary deployment configuration\",\n \"properties\": {\n \"autoFail\": {\n \"description\": \"ExtendedDaemonSetSpecStrategyCanaryAutoFail defines the canary deployment AutoFail parameters of the ExtendedDaemonSet.\",\n \"properties\": {\n \"canaryTimeout\": {\n \"description\": \"CanaryTimeout defines the maximum duration of a Canary, after which the Canary deployment is autofailed. This is a safeguard against lengthy Canary pauses. There is no default value.\",\n \"type\": \"string\"\n },\n \"enabled\": {\n \"description\": \"Enabled enables AutoFail. Default value is true.\",\n \"type\": \"boolean\"\n },\n \"maxRestarts\": {\n \"description\": \"MaxRestarts defines the number of tolerable (per pod) Canary pod restarts after which the Canary deployment is autofailed. Default value is 5.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxRestartsDuration\": {\n \"description\": \"MaxRestartsDuration defines the maximum duration of tolerable Canary pod restarts after which the Canary deployment is autofailed. There is no default value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"autoPause\": {\n \"description\": \"ExtendedDaemonSetSpecStrategyCanaryAutoPause defines the canary deployment AutoPause parameters of the ExtendedDaemonSet.\",\n \"properties\": {\n \"enabled\": {\n \"description\": \"Enabled enables AutoPause. Default value is true.\",\n \"type\": \"boolean\"\n },\n \"maxRestarts\": {\n \"description\": \"MaxRestarts defines the number of tolerable (per pod) Canary pod restarts after which the Canary deployment is autopaused. Default value is 2.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxSlowStartDuration\": {\n \"description\": \"MaxSlowStartDuration defines the maximum slow start duration for a pod (stuck in Creating state) after which the Canary deployment is autopaused. There is no default value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"duration\": {\n \"type\": \"string\"\n },\n \"noRestartsDuration\": {\n \"description\": \"NoRestartsDuration defines min duration since last restart to end the canary phase.\",\n \"type\": \"string\"\n },\n \"nodeAntiAffinityKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"nodeSelector\": {\n \"description\": \"A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"validationMode\": {\n \"description\": \"ValidationMode used to configure how a canary deployment is validated. Possible values are 'auto' (default) and 'manual'\",\n \"enum\": [\n \"auto\",\n \"manual\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"reconcileFrequency\": {\n \"description\": \"ReconcileFrequency use to configure how often the ExtendedDeamonset will be fully reconcile, default is 10sec.\",\n \"type\": \"string\"\n },\n \"rollingUpdate\": {\n \"description\": \"ExtendedDaemonSetSpecStrategyRollingUpdate defines the rolling update deployment strategy of ExtendedDaemonSet.\",\n \"properties\": {\n \"maxParallelPodCreation\": {\n \"description\": \"The maxium number of pods created in parallel. Default value is 250.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxPodSchedulerFailure\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"MaxPodSchedulerFailure the maxinum number of not scheduled on its Node due to a scheduler failure: resource constraints. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"slowStartAdditiveIncrease\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"SlowStartAdditiveIncrease Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Default value is 5.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"slowStartIntervalDuration\": {\n \"description\": \"SlowStartIntervalDuration the duration between to 2 Default value is 1min.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"An object that describes the pod that will be created. The ExtendedDaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"clusterName\": {\n \"description\": \"The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.\",\n \"type\": \"string\"\n },\n \"creationTimestamp\": {\n \"description\": \"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"format\": \"date-time\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"deletionGracePeriodSeconds\": {\n \"description\": \"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"deletionTimestamp\": {\n \"description\": \"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"type\": \"string\"\n },\n \"finalizers\": {\n \"description\": \"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"generateName\": {\n \"description\": \"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\n \"type\": \"string\"\n },\n \"generation\": {\n \"description\": \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"managedFields\": {\n \"description\": \"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\n \"items\": {\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \\\"default\\\" namespace, but \\\"default\\\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces\",\n \"type\": \"string\"\n },\n \"ownerReferences\": {\n \"description\": \"List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.\",\n \"items\": {\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"resourceVersion\": {\n \"description\": \"An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"selfLink\": {\n \"description\": \"SelfLink is a URL representing this object. Populated by the system. Read-only.\\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod. Defaults to \\\"ClusterFirst\\\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. \\n To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. \\n This is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. \\n The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. \\n If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions \\n If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and \\\"system-cluster-critical\\\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \\\"True\\\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class This is a beta feature as of Kubernetes v1.14.\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\". If not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number of pods into each bucket. It's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \\\"Unsatisfiable\\\" for an incoming pod if and only if every possible node assignment for that pod would violate \\\"MaxSkew\\\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"Specify \\\"true\\\" to force and set the ReadOnly property in VolumeMounts to \\\"true\\\". If omitted, the default is \\\"false\\\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"The Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"The URI the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"Share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"Optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"description\": \"volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"ConfigMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"description\": \"CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"Specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"DownwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"What type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"A label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"Driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional: Extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"Repository URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"Commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"Target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"description\": \"iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"VolumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"Items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"description\": \"information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"Volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"The host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"The name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"description\": \"Flag to enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"The ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"The name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"The name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"Storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"Path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"strategy\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Extended Daemon Set\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Extended Daemon Set", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "svgColor": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\n\tL670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\n\tc6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\n\tL0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\n\tc18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\n\ts-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\n\tc-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\n\tc6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\n\tc10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\n\tc-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\n\ts11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\n\tc-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\n\tc17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\n\tc11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\n\tc9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\n\tc32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\n\tc-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\n\tc-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\n\tc2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\n\tc2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\n\tc-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\n\tc-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\n\tc19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\n\tc-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\n\tc16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\n\tc-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\n\tc8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\n\tc-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\n\tc-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\n\tc18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\n\tc5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\n\tc5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\n\tC401.49,268.05,386.84,271.12,397.85,260.65\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\n\tc1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\n\tc-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\n\tc12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\n\tc-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\n\tc0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\n\tc-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\n\tc1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\n\tc-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\n\tc19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\n\tc6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\n\tc-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\n\tc1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\n\tc5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\n\tC519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\n\tc6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\n\tc2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\n\tc-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\n\ts12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\n\tc-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\n\tc2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\n\tc5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\n\tc15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\n\tc-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\n\tc4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\n\tc6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\n\tc47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\n\tc-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\n\tc15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\n\tL687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\n\tc-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"/\u003e\n\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonSetReplicaSet.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonSetReplicaSet.json new file mode 100644 index 00000000000..e01c2a2fdef --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonSetReplicaSet.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ExtendedDaemonSetReplicaSet", + "schema": "{\n \"description\": \"ExtendedDaemonSetReplicaSet is the Schema for the extendeddaemonsetreplicasets API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ExtendedDaemonSetReplicaSetSpec defines the desired state of ExtendedDaemonSetReplicaSet\",\n \"properties\": {\n \"selector\": {\n \"description\": \"A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"An object that describes the pod that will be created. The ExtendedDaemonSetReplicaSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified).\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"clusterName\": {\n \"description\": \"The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.\",\n \"type\": \"string\"\n },\n \"creationTimestamp\": {\n \"description\": \"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"format\": \"date-time\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"deletionGracePeriodSeconds\": {\n \"description\": \"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"deletionTimestamp\": {\n \"description\": \"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"type\": \"string\"\n },\n \"finalizers\": {\n \"description\": \"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"generateName\": {\n \"description\": \"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\n \"type\": \"string\"\n },\n \"generation\": {\n \"description\": \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"managedFields\": {\n \"description\": \"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\n \"items\": {\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \\\"default\\\" namespace, but \\\"default\\\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces\",\n \"type\": \"string\"\n },\n \"ownerReferences\": {\n \"description\": \"List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.\",\n \"items\": {\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"resourceVersion\": {\n \"description\": \"An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"selfLink\": {\n \"description\": \"SelfLink is a URL representing this object. Populated by the system. Read-only.\\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod. Defaults to \\\"ClusterFirst\\\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. \\n To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. \\n This is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. \\n The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. \\n If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions \\n If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and \\\"system-cluster-critical\\\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \\\"True\\\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class This is a beta feature as of Kubernetes v1.14.\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\". If not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number of pods into each bucket. It's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \\\"Unsatisfiable\\\" for an incoming pod if and only if every possible node assignment for that pod would violate \\\"MaxSkew\\\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"Specify \\\"true\\\" to force and set the ReadOnly property in VolumeMounts to \\\"true\\\". If omitted, the default is \\\"false\\\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"The Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"The URI the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"Share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"Optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"description\": \"volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"ConfigMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"description\": \"CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"Specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"DownwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"What type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"A label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"Driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional: Extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"Repository URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"Commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"Target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"description\": \"iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"VolumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"Items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"description\": \"information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"Volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"The host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"The name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"description\": \"Flag to enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"The ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"The name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"The name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"Storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"Path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"templateGeneration\": {\n \"description\": \"A sequence hash representing a specific generation of the template. Populated by the system. It can be set only during the creation.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Extended Daemon Set Replica Set\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Extended Daemon Set Replica Set", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "svgColor": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\n\tL670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\n\tc6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\n\tL0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\n\tc18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\n\ts-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\n\tc-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\n\tc6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\n\tc10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\n\tc-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\n\ts11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\n\tc-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\n\tc17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\n\tc11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\n\tc9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\n\tc32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\n\tc-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\n\tc-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\n\tc2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\n\tc2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\n\tc-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\n\tc-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\n\tc19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\n\tc-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\n\tc16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\n\tc-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\n\tc8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\n\tc-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\n\tc-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\n\tc18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\n\tc5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\n\tc5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\n\tC401.49,268.05,386.84,271.12,397.85,260.65\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\n\tc1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\n\tc-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\n\tc12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\n\tc-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\n\tc0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\n\tc-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\n\tc1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\n\tc-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\n\tc19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\n\tc6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\n\tc-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\n\tc1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\n\tc5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\n\tC519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\n\tc6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\n\tc2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\n\tc-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\n\ts12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\n\tc-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\n\tc2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\n\tc5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\n\tc15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\n\tc-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\n\tc4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\n\tc6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\n\tc47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\n\tc-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\n\tc15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\n\tL687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\n\tc-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"/\u003e\n\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonsetSetting.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonsetSetting.json new file mode 100644 index 00000000000..9948ac49218 --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/components/ExtendedDaemonsetSetting.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ExtendedDaemonsetSetting", + "schema": "{\n \"description\": \"ExtendedDaemonsetSetting is the Schema for the extendeddaemonsetsettings API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ExtendedDaemonsetSettingSpec is the Schema for the extendeddaemonsetsetting API\",\n \"properties\": {\n \"containers\": {\n \"description\": \"Containers contains a list of container spec override.\",\n \"items\": {\n \"description\": \"ExtendedDaemonsetSettingContainerSpec defines the resources override for a container identified by its name\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\",\n \"resources\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeSelector\": {\n \"description\": \"NodeSelector lists labels that must be present on nodes to trigger the usage of this resource.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"reference\": {\n \"description\": \"Reference contains enough information to let you identify the referred resource.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\\\"\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"nodeSelector\",\n \"reference\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Extended Daemonset Setting\",\n \"type\": \"object\"\n}", + "version": "datadoghq.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Extended Daemonset Setting", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/DataDog/helm-charts/main/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "source_uri": "git://github.com/DataDog/helm-charts/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "svgColor": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\n\tL670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\n\tc6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\n\tL0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\n\tc18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\n\ts-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\n\tc-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\n\tc6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\n\tc10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\n\tc-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\n\ts11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\n\tc-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\n\tc17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\n\tc11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\n\tc9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\n\tc32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\n\tc-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\n\tc-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\n\tc2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\n\tc2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\n\tc-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\n\tc-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\n\tc19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\n\tc-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\n\tc16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\n\tc-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\n\tc8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\n\tc-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\n\tc-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\n\tc18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\n\tc5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\n\tc5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\n\tC401.49,268.05,386.84,271.12,397.85,260.65\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\"\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\n\tc1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\n\tc-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\n\tc12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\n\tc-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\n\tc0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\n\tc-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\n\tc1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\n\tc-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\n\tc19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\n\tc6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\n\tc-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\n\tc1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\n\tc5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\n\tC519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\n\tc6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\n\tc2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\n\tc-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\n\ts12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\n\tc-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\n\tc2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\n\tc5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\n\tc15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\n\tc-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\n\tc4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\n\tc6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\n\tc47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\n\tc-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\n\tc15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\n\tL687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\n\tc-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"/\u003e\n\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/model.json b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/model.json new file mode 100644 index 00000000000..4d853d2edb8 --- /dev/null +++ b/server/meshmodel/datadog-operator/datadog-3.70.1/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Datadog Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#632CA6", + "secondaryColor": "#00D3A9", + "shape": "rectangle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.55 856.85\" style=\"enable-background:new 0 0 800.55 856.85;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#632CA6;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M670.38,608.27l-71.24-46.99l-59.43,99.27l-69.12-20.21l-60.86,92.89l3.12,29.24l330.9-60.97l-19.22-206.75\u0026#xA;\u0026#x9;L670.38,608.27z M361.79,519.13l53.09-7.3c8.59,3.86,14.57,5.33,24.87,7.95c16.04,4.18,34.61,8.19,62.11-5.67\u0026#xA;\u0026#x9;c6.4-3.17,19.73-15.36,25.12-22.31l217.52-39.46l22.19,268.56l-372.65,67.16L361.79,519.13z M765.85,422.36l-21.47,4.09L703.13,0.27\u0026#xA;\u0026#x9;L0.27,81.77l86.59,702.68l82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26c-24.23-20.13-15.66-54.32-1.37-75.91\u0026#xA;\u0026#x9;c18.91-36.48,116.34-82.84,110.82-141.15c-1.98-21.2-5.35-48.8-25.03-67.71c-0.74,7.85,0.59,15.41,0.59,15.41\u0026#xA;\u0026#x9;s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31c-3.03,8.33-2.63,17.99-2.63,17.99s-6.61-15.62-7.68-28.8\u0026#xA;\u0026#x9;c-3.92,5.9-4.91,17.11-4.91,17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49c21.45,15.03,68.67,11.46,87.07-15.66\u0026#xA;\u0026#x9;c6.11-8.98,10.29-33.5-3.05-81.81c-8.57-30.98-29.79-77.11-38.06-94.61l-0.99,0.71c4.36,14.1,13.35,43.66,16.8,57.99\u0026#xA;\u0026#x9;c10.44,43.47,13.24,58.6,8.34,78.64c-4.17,17.42-14.17,28.82-39.52,41.56c-25.35,12.78-58.99-18.32-61.12-20.04\u0026#xA;\u0026#x9;c-24.63-19.62-43.68-51.63-45.81-67.18c-2.21-17.02,9.81-27.24,15.87-41.16c-8.67,2.48-18.34,6.88-18.34,6.88\u0026#xA;\u0026#x9;s11.54-11.94,25.77-22.27c5.89-3.9,9.35-6.38,15.56-11.54c-8.99-0.15-16.29,0.11-16.29,0.11s14.99-8.1,30.53-14\u0026#xA;\u0026#x9;c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96,59.87-25.94c18.17-7.45,35.92-5.25,45.89,9.17c13.09,18.89,26.84,29.15,55.98,35.51\u0026#xA;\u0026#x9;c17.89-7.93,23.33-12.01,45.81-18.13c19.79-21.76,35.33-24.58,35.33-24.58s-7.71,7.07-9.77,18.18\u0026#xA;\u0026#x9;c11.22-8.84,23.52-16.22,23.52-16.22s-4.76,5.88-9.2,15.22l1.03,1.53c13.09-7.85,28.48-14.04,28.48-14.04s-4.4,5.56-9.56,12.76\u0026#xA;\u0026#x9;c9.87-0.08,29.89,0.42,37.66,1.3c45.87,1.01,55.39-48.99,72.99-55.26c22.04-7.87,31.89-12.63,69.45,24.26\u0026#xA;\u0026#x9;c32.23,31.67,57.41,88.36,44.91,101.06c-10.48,10.54-31.16-4.11-54.08-32.68c-12.11-15.13-21.27-33.01-25.56-55.74\u0026#xA;\u0026#x9;c-3.62-19.18-17.71-30.31-17.71-30.31S520,92.95,520,109.01c0,8.77,1.1,41.56,15.16,59.96c-1.39,2.69-2.04,13.31-3.58,15.34\u0026#xA;\u0026#x9;c-16.36-19.77-51.49-33.92-57.22-38.09c19.39,15.89,63.96,52.39,81.08,87.37c16.19,33.08,6.65,63.4,14.84,71.25\u0026#xA;\u0026#x9;c2.33,2.25,34.82,42.73,41.07,63.07c10.9,35.45,0.65,72.7-13.62,95.81l-39.85,6.21c-5.83-1.62-9.76-2.43-14.99-5.46\u0026#xA;\u0026#x9;c2.88-5.1,8.61-17.82,8.67-20.44l-2.25-3.95c-12.4,17.57-33.18,34.63-50.44,44.43c-22.59,12.8-48.63,10.83-65.58,5.58\u0026#xA;\u0026#x9;c-48.11-14.84-93.6-47.35-104.57-55.89c0,0-0.34,6.82,1.73,8.35c12.13,13.68,39.92,38.43,66.78,55.68l-57.26,6.3l27.07,210.78\u0026#xA;\u0026#x9;c-12,1.72-13.87,2.56-27.01,4.43c-11.58-40.91-33.73-67.62-57.94-83.18c-21.35-13.72-50.8-16.81-78.99-11.23l-1.81,2.1\u0026#xA;\u0026#x9;c19.6-2.04,42.74,0.8,66.51,15.85c23.33,14.75,42.13,52.85,49.05,75.79c8.86,29.32,14.99,60.68-8.86,93.92\u0026#xA;\u0026#x9;c-16.97,23.63-66.51,36.69-106.53,8.44c10.69,17.19,25.14,31.25,44.59,33.9c28.88,3.92,56.29-1.09,75.16-20.46\u0026#xA;\u0026#x9;c16.11-16.56,24.65-51.19,22.4-87.66l25.49-3.7l9.2,65.46l421.98-50.81L765.85,422.36z M509.12,244.59\u0026#xA;\u0026#x9;c-1.18,2.69-3.03,4.45-0.25,13.2l0.17,0.5l0.44,1.13l1.16,2.62c5.01,10.24,10.51,19.9,19.7,24.83c2.38-0.4,4.84-0.67,7.39-0.8\u0026#xA;\u0026#x9;c8.63-0.38,14.08,0.99,17.54,2.85c0.31-1.72,0.38-4.24,0.19-7.95c-0.67-12.97,2.57-35.03-22.36-46.64\u0026#xA;\u0026#x9;c-9.41-4.37-22.61-3.02-27.01,2.43c0.8,0.1,1.52,0.27,2.08,0.46C514.82,239.55,510.31,241.84,509.12,244.59 M578.99,365.61\u0026#xA;\u0026#x9;c-3.27-1.8-18.55-1.09-29.29,0.19c-20.46,2.41-42.55,9.51-47.39,13.29c-8.8,6.8-4.8,18.66,1.7,23.53\u0026#xA;\u0026#x9;c18.23,13.62,34.21,22.75,51.08,20.53c10.36-1.36,19.49-17.76,25.96-32.64C585.48,380.26,585.48,369.2,578.99,365.61 M397.85,260.65\u0026#xA;\u0026#x9;c5.77-5.48-28.74-12.68-55.52,5.58c-19.75,13.47-20.38,42.35-1.47,58.72c1.89,1.62,3.45,2.77,4.91,3.71\u0026#xA;\u0026#x9;c5.52-2.6,11.81-5.23,19.05-7.58c12.23-3.97,22.4-6.02,30.76-7.11c4-4.47,8.65-12.34,7.49-26.59\u0026#xA;\u0026#x9;C401.49,268.05,386.84,271.12,397.85,260.65\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 800.5 907.77\" style=\"enable-background:new 0 0 800.5 907.77;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M303.36,238.61c31.36-21.37,71.76-12.97,65-6.53c-12.89,12.28,4.26,8.65,6.11,31.31\u0026#xA;\u0026#x9;c1.36,16.69-4.09,25.88-8.78,31.11c-9.79,1.28-21.69,3.67-36.02,8.33c-8.48,2.76-15.85,5.82-22.31,8.9\u0026#xA;\u0026#x9;c-1.7-1.11-3.55-2.47-5.74-4.36C279.5,288.19,280.24,254.37,303.36,238.61 M490.68,370.72c5.69-4.41,31.55-12.72,55.49-15.55\u0026#xA;\u0026#x9;c12.57-1.48,30.49-2.34,34.31-0.2c7.59,4.19,7.59,17.16,2.39,29.14c-7.57,17.4-18.27,36.63-30.39,38.21\u0026#xA;\u0026#x9;c-19.77,2.61-38.46-8.09-59.8-24.03C485.06,392.56,480.38,378.68,490.68,370.72 M526.75,201.27c29.19,13.58,25.37,39.42,26.18,54.6\u0026#xA;\u0026#x9;c0.22,4.36,0.15,7.3-0.22,9.32c-4.04-2.19-10.43-3.8-20.56-3.35c-2.96,0.12-5.84,0.47-8.63,0.91c-10.77-5.77-17.21-17.06-23.1-29.06\u0026#xA;\u0026#x9;c-0.54-1.11-0.96-2.1-1.36-3.06c-0.17-0.44-0.35-0.91-0.52-1.31c-0.07-0.22-0.12-0.39-0.2-0.59c-3.23-10.25-1.06-12.3,0.3-15.46\u0026#xA;\u0026#x9;c1.41-3.23,6.68-5.89-1.11-8.58c-0.67-0.25-1.5-0.39-2.44-0.57C500.25,197.72,515.7,196.17,526.75,201.27 M367.62,510.22\u0026#xA;\u0026#x9;c-31.45-20.19-63.99-49.15-78.22-65.18c-2.39-1.8-2-9.79-2-9.79c12.84,9.98,66.11,48.04,122.44,65.42\u0026#xA;\u0026#x9;c19.87,6.14,50.36,8.46,76.81-6.53c20.21-11.46,44.54-31.43,59.06-52.01l2.66,4.61c-0.1,3.06-6.78,17.97-10.18,23.96\u0026#xA;\u0026#x9;c6.14,3.53,10.72,4.49,17.55,6.36l46.64-7.27c16.74-27.04,28.74-70.65,15.95-112.16c-7.3-23.81-45.36-71.22-48.09-73.83\u0026#xA;\u0026#x9;c-9.56-9.19,1.6-44.69-17.35-83.42C532.86,159.41,480.67,116.69,458,98.1c6.68,4.88,47.82,21.47,67,44.62\u0026#xA;\u0026#x9;c1.8-2.39,2.54-14.82,4.19-17.97c-16.47-21.57-17.75-59.95-17.75-70.21c0-18.81-9.56-40.13-9.56-40.13s16.47,13.04,20.73,35.5\u0026#xA;\u0026#x9;c5.03,26.6,15.75,47.55,29.93,65.28c26.84,33.43,51.08,50.58,63.33,38.23C630.53,138.58,601,72.2,563.28,35.15\u0026#xA;\u0026#x9;C519.25-8.09,507.74-2.52,481.91,6.7c-20.61,7.35-31.75,65.87-85.47,64.71c-9.1-1.06-32.54-1.63-44.13-1.53\u0026#xA;\u0026#x9;c6.04-8.43,11.22-14.94,11.22-14.94s-18.02,7.25-33.38,16.44l-1.18-1.77c5.18-10.92,10.75-17.82,10.75-17.82s-14.4,8.65-27.54,19.01\u0026#xA;\u0026#x9;c2.39-13.02,11.44-21.27,11.44-21.27s-18.19,3.28-41.36,28.77c-26.33,7.2-32.66,11.93-53.64,21.22\u0026#xA;\u0026#x9;c-34.12-7.44-50.21-19.45-65.55-41.56c-11.68-16.89-32.47-19.45-53.71-10.72c-30.97,12.8-70.14,30.33-70.14,30.33\u0026#xA;\u0026#x9;s12.77-0.52,26.08,0.05c-18.22,6.9-35.72,16.39-35.72,16.39s8.53-0.3,19.06-0.12c-7.27,6.04-11.29,8.92-18.22,13.51\u0026#xA;\u0026#x9;c-16.66,12.1-30.17,26.08-30.17,26.08s11.31-5.15,21.47-8.04c-7.1,16.27-21.18,28.25-18.59,48.17\u0026#xA;\u0026#x9;c2.49,18.19,24.82,55.66,53.64,78.66c2.49,2,41.86,38.43,71.56,23.47c29.68-14.94,41.39-28.25,46.27-48.66\u0026#xA;\u0026#x9;c5.74-23.44,2.47-41.17-9.79-92.05c-4.04-16.79-14.57-51.37-19.65-67.91l1.13-0.81c9.71,20.49,34.56,74.5,44.57,110.78\u0026#xA;\u0026#x9;c15.63,56.57,10.75,85.27,3.6,95.79c-21.57,31.73-76.84,35.92-101.98,18.34c-3.85,60.91,9.76,87.73,14.37,101.24\u0026#xA;\u0026#x9;c-2.29,15.53,7.77,44.37,7.77,44.37s1.13-13.11,5.74-20.02c1.23,15.41,9,33.72,9,33.72s-0.47-11.31,3.06-21.08\u0026#xA;\u0026#x9;c4.98,8.43,8.63,10.43,13.34,16.76c4.71,16.47,14.15,28.5,14.15,28.5s-1.53-8.83-0.69-18.02c23.05,22.14,27.02,54.45,29.31,79.28\u0026#xA;\u0026#x9;c6.46,68.26-107.63,122.54-129.74,165.24c-16.76,25.29-26.8,65.3,1.58,88.89c68.6,56.97,42.25,72.65,76.59,97.69\u0026#xA;\u0026#x9;c47.11,34.34,106.05,18.96,126.11-8.97c27.93-38.92,20.76-75.63,10.38-109.97c-8.11-26.85-30.15-71.46-57.41-88.72\u0026#xA;\u0026#x9;c-27.86-17.65-54.95-20.95-77.9-18.59l2.12-2.44c33.01-6.56,67.52-2.96,92.49,13.14c28.35,18.22,54.28,49.47,67.84,97.37\u0026#xA;\u0026#x9;c15.38-2.19,17.55-3.18,31.63-5.18l-31.7-246.76L367.62,510.22z M385.94,819.52l-3.65-34.22l71.29-108.74l80.93,23.64l69.59-116.23\u0026#xA;\u0026#x9;L687.52,639l63.38-132.92l22.53,242.07L385.94,819.52z M774.27,456.51l-254.72,46.17c-6.31,8.13-21.91,22.41-29.41,26.13\u0026#xA;\u0026#x9;c-32.17,16.2-53.91,11.51-72.7,6.63c-12.08-3.06-19.08-4.78-29.11-9.29l-62.17,8.53l37.74,314.87l436.35-78.66L774.27,456.51z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n" + }, + "model": { + "version": "datadog-3.70.1" + }, + "name": "datadog-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/devfile/v2.3.0/v1.0.0/components/DevWorkspace.json b/server/meshmodel/devfile/v2.3.0/v1.0.0/components/DevWorkspace.json new file mode 100644 index 00000000000..ff30639ad2b --- /dev/null +++ b/server/meshmodel/devfile/v2.3.0/v1.0.0/components/DevWorkspace.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DevWorkspace", + "schema": "{\n \"description\": \"DevWorkspace is the Schema for the devworkspaces API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DevWorkspaceSpec defines the desired state of DevWorkspace\",\n \"properties\": {\n \"routingClass\": {\n \"type\": \"string\"\n },\n \"started\": {\n \"type\": \"boolean\"\n },\n \"template\": {\n \"description\": \"Structure of the workspace. This is also the specification of a workspace template.\",\n \"properties\": {\n \"commands\": {\n \"description\": \"Predefined, ready-to-use, workspace-related commands\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"exec\"\n ]\n },\n {\n \"required\": [\n \"apply\"\n ]\n },\n {\n \"required\": [\n \"vscodeTask\"\n ]\n },\n {\n \"required\": [\n \"vscodeLaunch\"\n ]\n },\n {\n \"required\": [\n \"composite\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"apply\": {\n \"description\": \"Command that consists in applying a given component definition, typically bound to a workspace event. \\n For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the workspace POD, unless the component has its `dedicatedPod` field set to `true`. \\n When no `apply` command exist for a given component, it is assumed the component will be applied at workspace start by default.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Describes component that will be applied\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"commandType\": {\n \"description\": \"Type of workspace command\",\n \"enum\": [\n \"Exec\",\n \"Apply\",\n \"VscodeTask\",\n \"VscodeLaunch\",\n \"Composite\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"composite\": {\n \"description\": \"Composite command that allows executing several sub-commands either sequentially or concurrently\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commands\": {\n \"description\": \"The commands that comprise this composite command\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"parallel\": {\n \"description\": \"Indicates if the sub-commands should be executed concurrently\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandClass\": {\n \"description\": \"Class of command that the associated implementation component should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom command that the implementation component will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"commandClass\",\n \"embeddedResource\",\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"exec\": {\n \"description\": \"CLI Command executed in an existing component container\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandLine\": {\n \"description\": \"The actual command-line string \\n Special variables that can be used: \\n - `$PROJECTS_ROOT`: A path where projects sources are mounted \\n - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"Describes component to which given action relates\",\n \"type\": \"string\"\n },\n \"env\": {\n \"description\": \"Optional list of environment variables that have to be set before running the command\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"hotReloadCapable\": {\n \"description\": \"Specify whether the command is restarted or not when the source code changes. If set to `true` the command won't be restarted. A *hotReloadCapable* `run` or `debug` command is expected to handle file changes on its own and won't be restarted. A *hotReloadCapable* `build` command is expected to be executed only once and won't be executed again. This field is taken into account only for commands `build`, `run` and `debug` with `isDefault` set to `true`. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"workingDir\": {\n \"description\": \"Working directory where the command should be executed \\n Special variables that can be used: \\n - `${PROJECTS_ROOT}`: A path where projects sources are mounted \\n - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeLaunch\": {\n \"description\": \"Command providing the definition of a VsCode launch action \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeTask\": {\n \"description\": \"Command providing the definition of a VsCode Task \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"List of the workspace components, such as editor and plugins, user-provided containers, or other types of components\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"container\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n },\n {\n \"required\": [\n \"openshift\"\n ]\n },\n {\n \"required\": [\n \"volume\"\n ]\n },\n {\n \"required\": [\n \"plugin\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"componentType\": {\n \"description\": \"Type of component\",\n \"enum\": [\n \"Container\",\n \"Kubernetes\",\n \"Openshift\",\n \"Volume\",\n \"Plugin\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"container\": {\n \"description\": \"Allows adding and configuring workspace-related containers\",\n \"properties\": {\n \"args\": {\n \"description\": \"The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"The command to run in the dockerimage component instead of the default one provided in the image. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dedicatedPod\": {\n \"description\": \"Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"Environment variables used in this container\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"memoryLimit\": {\n \"type\": \"string\"\n },\n \"mountSources\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sourceMapping\": {\n \"description\": \"Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the value of the `PROJECTS_ROOT` environment variable is used.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"List of volumes mounts that should be mounted is this container.\",\n \"items\": {\n \"description\": \"Volume that should be mounted to a component container\",\n \"properties\": {\n \"name\": {\n \"description\": \"The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/\\u003cname\\u003e`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom component whose logic is implementation-dependant and should be provided by the user possibly through some dedicated controller\",\n \"properties\": {\n \"componentClass\": {\n \"description\": \"Class of component that the associated implementation controller should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom component that the implementation controller will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"componentClass\",\n \"embeddedResource\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"kubernetes\": {\n \"description\": \"Allows importing into the workspace the Kubernetes resources defined in a given manifest. For example this allows reusing the Kubernetes definitions used to deploy some runtime components in production.\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"openshift\": {\n \"description\": \"Allows importing into the workspace the OpenShift resources defined in a given manifest. For example this allows reusing the OpenShift definitions used to deploy some runtime components in production.\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"plugin\": {\n \"description\": \"Allows importing a plugin. \\n Plugins are mainly imported devfiles that contribute components, commands and events as a consistent single unit. They are defined in either YAML files following the devfile syntax, or as `DevWorkspaceTemplate` Kubernetes Custom Resources\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"id\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n }\n ],\n \"properties\": {\n \"commands\": {\n \"description\": \"Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done using a strategic merge patch\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"exec\"\n ]\n },\n {\n \"required\": [\n \"apply\"\n ]\n },\n {\n \"required\": [\n \"vscodeTask\"\n ]\n },\n {\n \"required\": [\n \"vscodeLaunch\"\n ]\n },\n {\n \"required\": [\n \"composite\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"apply\": {\n \"description\": \"Command that consists in applying a given component definition, typically bound to a workspace event. \\n For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the workspace POD, unless the component has its `dedicatedPod` field set to `true`. \\n When no `apply` command exist for a given component, it is assumed the component will be applied at workspace start by default.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Describes component that will be applied\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"commandType\": {\n \"description\": \"Type of workspace command\",\n \"enum\": [\n \"Exec\",\n \"Apply\",\n \"VscodeTask\",\n \"VscodeLaunch\",\n \"Composite\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"composite\": {\n \"description\": \"Composite command that allows executing several sub-commands either sequentially or concurrently\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commands\": {\n \"description\": \"The commands that comprise this composite command\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"parallel\": {\n \"description\": \"Indicates if the sub-commands should be executed concurrently\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandClass\": {\n \"description\": \"Class of command that the associated implementation component should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom command that the implementation component will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"commandClass\",\n \"embeddedResource\",\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"exec\": {\n \"description\": \"CLI Command executed in an existing component container\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandLine\": {\n \"description\": \"The actual command-line string \\n Special variables that can be used: \\n - `$PROJECTS_ROOT`: A path where projects sources are mounted \\n - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"Describes component to which given action relates\",\n \"type\": \"string\"\n },\n \"env\": {\n \"description\": \"Optional list of environment variables that have to be set before running the command\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"hotReloadCapable\": {\n \"description\": \"Specify whether the command is restarted or not when the source code changes. If set to `true` the command won't be restarted. A *hotReloadCapable* `run` or `debug` command is expected to handle file changes on its own and won't be restarted. A *hotReloadCapable* `build` command is expected to be executed only once and won't be executed again. This field is taken into account only for commands `build`, `run` and `debug` with `isDefault` set to `true`. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"workingDir\": {\n \"description\": \"Working directory where the command should be executed \\n Special variables that can be used: \\n - `${PROJECTS_ROOT}`: A path where projects sources are mounted \\n - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeLaunch\": {\n \"description\": \"Command providing the definition of a VsCode launch action \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeTask\": {\n \"description\": \"Command providing the definition of a VsCode Task \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"Overrides of components encapsulated in a plugin. Overriding is done using a strategic merge patch. A plugin cannot override embedded plugin components.\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"container\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n },\n {\n \"required\": [\n \"openshift\"\n ]\n },\n {\n \"required\": [\n \"volume\"\n ]\n }\n ],\n \"properties\": {\n \"componentType\": {\n \"description\": \"Type of component override for a plugin\",\n \"enum\": [\n \"Container\",\n \"Kubernetes\",\n \"Openshift\",\n \"Volume\"\n ],\n \"type\": \"string\"\n },\n \"container\": {\n \"description\": \"Configuration overriding for a Container component in a plugin\",\n \"properties\": {\n \"args\": {\n \"description\": \"The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"The command to run in the dockerimage component instead of the default one provided in the image. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dedicatedPod\": {\n \"description\": \"Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"Environment variables used in this container\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"memoryLimit\": {\n \"type\": \"string\"\n },\n \"mountSources\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sourceMapping\": {\n \"description\": \"Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the value of the `PROJECTS_ROOT` environment variable is used.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"List of volumes mounts that should be mounted is this container.\",\n \"items\": {\n \"description\": \"Volume that should be mounted to a component container\",\n \"properties\": {\n \"name\": {\n \"description\": \"The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/\\u003cname\\u003e`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"kubernetes\": {\n \"description\": \"Configuration overriding for a Kubernetes component in a plugin\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"openshift\": {\n \"description\": \"Configuration overriding for an OpenShift component in a plugin\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"volume\": {\n \"description\": \"Configuration overriding for a Volume component in a plugin\",\n \"properties\": {\n \"ephemeral\": {\n \"description\": \"Ephemeral volumes are not stored persistently across restarts. Defaults to false\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the Volume component in Container volume mounts or inside a parent\",\n \"type\": \"string\"\n },\n \"size\": {\n \"description\": \"Size of the volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"id\": {\n \"description\": \"Id in a registry that contains a Devfile yaml file\",\n \"type\": \"string\"\n },\n \"importReferenceType\": {\n \"description\": \"type of location from where the referenced template structure should be retrieved\",\n \"enum\": [\n \"Uri\",\n \"Id\",\n \"Kubernetes\"\n ],\n \"type\": \"string\"\n },\n \"kubernetes\": {\n \"description\": \"Reference to a Kubernetes CRD of type DevWorkspaceTemplate\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Optional name that allows referencing the component in commands, or inside a parent If omitted it will be infered from the location (uri or registryEntry)\",\n \"type\": \"string\"\n },\n \"registryUrl\": {\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Uri of a Devfile yaml file\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volume\": {\n \"description\": \"Allows specifying the definition of a volume shared by several other components\",\n \"properties\": {\n \"ephemeral\": {\n \"description\": \"Ephemeral volumes are not stored persistently across restarts. Defaults to false\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the Volume component in Container volume mounts or inside a parent\",\n \"type\": \"string\"\n },\n \"size\": {\n \"description\": \"Size of the volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"events\": {\n \"description\": \"Bindings of commands to events. Each command is referred-to by its name.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"Names of commands that should be executed after the workspace is completely started. In the case of Che-Theia, these commands should be executed after all plugins and extensions have started, including project cloning. This means that those commands are not triggered until the user opens the IDE in his browser.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"postStop\": {\n \"description\": \"Names of commands that should be executed after stopping the workspace.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"preStart\": {\n \"description\": \"Names of commands that should be executed before the workspace start. Kubernetes-wise, these commands would typically be executed in init containers of the workspace POD.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"preStop\": {\n \"description\": \"Names of commands that should be executed before stopping the workspace.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"parent\": {\n \"description\": \"Parent workspace template\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"id\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n }\n ],\n \"properties\": {\n \"commands\": {\n \"description\": \"Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done using a strategic merge patch\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"exec\"\n ]\n },\n {\n \"required\": [\n \"apply\"\n ]\n },\n {\n \"required\": [\n \"vscodeTask\"\n ]\n },\n {\n \"required\": [\n \"vscodeLaunch\"\n ]\n },\n {\n \"required\": [\n \"composite\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"apply\": {\n \"description\": \"Command that consists in applying a given component definition, typically bound to a workspace event. \\n For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the workspace POD, unless the component has its `dedicatedPod` field set to `true`. \\n When no `apply` command exist for a given component, it is assumed the component will be applied at workspace start by default.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Describes component that will be applied\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"commandType\": {\n \"description\": \"Type of workspace command\",\n \"enum\": [\n \"Exec\",\n \"Apply\",\n \"VscodeTask\",\n \"VscodeLaunch\",\n \"Composite\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"composite\": {\n \"description\": \"Composite command that allows executing several sub-commands either sequentially or concurrently\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commands\": {\n \"description\": \"The commands that comprise this composite command\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"parallel\": {\n \"description\": \"Indicates if the sub-commands should be executed concurrently\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandClass\": {\n \"description\": \"Class of command that the associated implementation component should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom command that the implementation component will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"commandClass\",\n \"embeddedResource\",\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"exec\": {\n \"description\": \"CLI Command executed in an existing component container\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandLine\": {\n \"description\": \"The actual command-line string \\n Special variables that can be used: \\n - `$PROJECTS_ROOT`: A path where projects sources are mounted \\n - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"Describes component to which given action relates\",\n \"type\": \"string\"\n },\n \"env\": {\n \"description\": \"Optional list of environment variables that have to be set before running the command\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"hotReloadCapable\": {\n \"description\": \"Specify whether the command is restarted or not when the source code changes. If set to `true` the command won't be restarted. A *hotReloadCapable* `run` or `debug` command is expected to handle file changes on its own and won't be restarted. A *hotReloadCapable* `build` command is expected to be executed only once and won't be executed again. This field is taken into account only for commands `build`, `run` and `debug` with `isDefault` set to `true`. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"workingDir\": {\n \"description\": \"Working directory where the command should be executed \\n Special variables that can be used: \\n - `${PROJECTS_ROOT}`: A path where projects sources are mounted \\n - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeLaunch\": {\n \"description\": \"Command providing the definition of a VsCode launch action \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeTask\": {\n \"description\": \"Command providing the definition of a VsCode Task \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"Overrides of components encapsulated in a parent devfile. Overriding is done using a strategic merge patch\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"container\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n },\n {\n \"required\": [\n \"openshift\"\n ]\n },\n {\n \"required\": [\n \"volume\"\n ]\n },\n {\n \"required\": [\n \"plugin\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"componentType\": {\n \"description\": \"Type of component\",\n \"enum\": [\n \"Container\",\n \"Kubernetes\",\n \"Openshift\",\n \"Volume\",\n \"Plugin\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"container\": {\n \"description\": \"Allows adding and configuring workspace-related containers\",\n \"properties\": {\n \"args\": {\n \"description\": \"The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"The command to run in the dockerimage component instead of the default one provided in the image. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dedicatedPod\": {\n \"description\": \"Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"Environment variables used in this container\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"memoryLimit\": {\n \"type\": \"string\"\n },\n \"mountSources\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sourceMapping\": {\n \"description\": \"Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the value of the `PROJECTS_ROOT` environment variable is used.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"List of volumes mounts that should be mounted is this container.\",\n \"items\": {\n \"description\": \"Volume that should be mounted to a component container\",\n \"properties\": {\n \"name\": {\n \"description\": \"The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/\\u003cname\\u003e`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom component whose logic is implementation-dependant and should be provided by the user possibly through some dedicated controller\",\n \"properties\": {\n \"componentClass\": {\n \"description\": \"Class of component that the associated implementation controller should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom component that the implementation controller will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"componentClass\",\n \"embeddedResource\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"kubernetes\": {\n \"description\": \"Allows importing into the workspace the Kubernetes resources defined in a given manifest. For example this allows reusing the Kubernetes definitions used to deploy some runtime components in production.\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"openshift\": {\n \"description\": \"Allows importing into the workspace the OpenShift resources defined in a given manifest. For example this allows reusing the OpenShift definitions used to deploy some runtime components in production.\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"plugin\": {\n \"description\": \"Allows importing a plugin. \\n Plugins are mainly imported devfiles that contribute components, commands and events as a consistent single unit. They are defined in either YAML files following the devfile syntax, or as `DevWorkspaceTemplate` Kubernetes Custom Resources\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"id\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n }\n ],\n \"properties\": {\n \"commands\": {\n \"description\": \"Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done using a strategic merge patch\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"exec\"\n ]\n },\n {\n \"required\": [\n \"apply\"\n ]\n },\n {\n \"required\": [\n \"vscodeTask\"\n ]\n },\n {\n \"required\": [\n \"vscodeLaunch\"\n ]\n },\n {\n \"required\": [\n \"composite\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"apply\": {\n \"description\": \"Command that consists in applying a given component definition, typically bound to a workspace event. \\n For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the workspace POD, unless the component has its `dedicatedPod` field set to `true`. \\n When no `apply` command exist for a given component, it is assumed the component will be applied at workspace start by default.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Describes component that will be applied\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"commandType\": {\n \"description\": \"Type of workspace command\",\n \"enum\": [\n \"Exec\",\n \"Apply\",\n \"VscodeTask\",\n \"VscodeLaunch\",\n \"Composite\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"composite\": {\n \"description\": \"Composite command that allows executing several sub-commands either sequentially or concurrently\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commands\": {\n \"description\": \"The commands that comprise this composite command\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"parallel\": {\n \"description\": \"Indicates if the sub-commands should be executed concurrently\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandClass\": {\n \"description\": \"Class of command that the associated implementation component should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom command that the implementation component will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"commandClass\",\n \"embeddedResource\",\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"exec\": {\n \"description\": \"CLI Command executed in an existing component container\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandLine\": {\n \"description\": \"The actual command-line string \\n Special variables that can be used: \\n - `$PROJECTS_ROOT`: A path where projects sources are mounted \\n - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"Describes component to which given action relates\",\n \"type\": \"string\"\n },\n \"env\": {\n \"description\": \"Optional list of environment variables that have to be set before running the command\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"hotReloadCapable\": {\n \"description\": \"Specify whether the command is restarted or not when the source code changes. If set to `true` the command won't be restarted. A *hotReloadCapable* `run` or `debug` command is expected to handle file changes on its own and won't be restarted. A *hotReloadCapable* `build` command is expected to be executed only once and won't be executed again. This field is taken into account only for commands `build`, `run` and `debug` with `isDefault` set to `true`. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"workingDir\": {\n \"description\": \"Working directory where the command should be executed \\n Special variables that can be used: \\n - `${PROJECTS_ROOT}`: A path where projects sources are mounted \\n - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeLaunch\": {\n \"description\": \"Command providing the definition of a VsCode launch action \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeTask\": {\n \"description\": \"Command providing the definition of a VsCode Task \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"Overrides of components encapsulated in a plugin. Overriding is done using a strategic merge patch. A plugin cannot override embedded plugin components.\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"container\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n },\n {\n \"required\": [\n \"openshift\"\n ]\n },\n {\n \"required\": [\n \"volume\"\n ]\n }\n ],\n \"properties\": {\n \"componentType\": {\n \"description\": \"Type of component override for a plugin\",\n \"enum\": [\n \"Container\",\n \"Kubernetes\",\n \"Openshift\",\n \"Volume\"\n ],\n \"type\": \"string\"\n },\n \"container\": {\n \"description\": \"Configuration overriding for a Container component in a plugin\",\n \"properties\": {\n \"args\": {\n \"description\": \"The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"The command to run in the dockerimage component instead of the default one provided in the image. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dedicatedPod\": {\n \"description\": \"Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"Environment variables used in this container\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"memoryLimit\": {\n \"type\": \"string\"\n },\n \"mountSources\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sourceMapping\": {\n \"description\": \"Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the value of the `PROJECTS_ROOT` environment variable is used.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"List of volumes mounts that should be mounted is this container.\",\n \"items\": {\n \"description\": \"Volume that should be mounted to a component container\",\n \"properties\": {\n \"name\": {\n \"description\": \"The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/\\u003cname\\u003e`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"kubernetes\": {\n \"description\": \"Configuration overriding for a Kubernetes component in a plugin\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"openshift\": {\n \"description\": \"Configuration overriding for an OpenShift component in a plugin\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"volume\": {\n \"description\": \"Configuration overriding for a Volume component in a plugin\",\n \"properties\": {\n \"ephemeral\": {\n \"description\": \"Ephemeral volumes are not stored persistently across restarts. Defaults to false\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the Volume component in Container volume mounts or inside a parent\",\n \"type\": \"string\"\n },\n \"size\": {\n \"description\": \"Size of the volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"id\": {\n \"description\": \"Id in a registry that contains a Devfile yaml file\",\n \"type\": \"string\"\n },\n \"importReferenceType\": {\n \"description\": \"type of location from where the referenced template structure should be retrieved\",\n \"enum\": [\n \"Uri\",\n \"Id\",\n \"Kubernetes\"\n ],\n \"type\": \"string\"\n },\n \"kubernetes\": {\n \"description\": \"Reference to a Kubernetes CRD of type DevWorkspaceTemplate\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Optional name that allows referencing the component in commands, or inside a parent If omitted it will be infered from the location (uri or registryEntry)\",\n \"type\": \"string\"\n },\n \"registryUrl\": {\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Uri of a Devfile yaml file\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volume\": {\n \"description\": \"Allows specifying the definition of a volume shared by several other components\",\n \"properties\": {\n \"ephemeral\": {\n \"description\": \"Ephemeral volumes are not stored persistently across restarts. Defaults to false\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the Volume component in Container volume mounts or inside a parent\",\n \"type\": \"string\"\n },\n \"size\": {\n \"description\": \"Size of the volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"id\": {\n \"description\": \"Id in a registry that contains a Devfile yaml file\",\n \"type\": \"string\"\n },\n \"importReferenceType\": {\n \"description\": \"type of location from where the referenced template structure should be retrieved\",\n \"enum\": [\n \"Uri\",\n \"Id\",\n \"Kubernetes\"\n ],\n \"type\": \"string\"\n },\n \"kubernetes\": {\n \"description\": \"Reference to a Kubernetes CRD of type DevWorkspaceTemplate\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"projects\": {\n \"description\": \"Overrides of projects encapsulated in a parent devfile. Overriding is done using a strategic merge patch.\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"git\"\n ]\n },\n {\n \"required\": [\n \"github\"\n ]\n },\n {\n \"required\": [\n \"zip\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"clonePath\": {\n \"description\": \"Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.\",\n \"type\": \"string\"\n },\n \"custom\": {\n \"description\": \"Project's Custom source\",\n \"properties\": {\n \"embeddedResource\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"projectSourceClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"embeddedResource\",\n \"projectSourceClass\"\n ],\n \"type\": \"object\"\n },\n \"git\": {\n \"description\": \"Project's Git source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"github\": {\n \"description\": \"Project's GitHub source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Project name\",\n \"type\": \"string\"\n },\n \"sourceType\": {\n \"description\": \"Type of project source\",\n \"enum\": [\n \"Git\",\n \"Github\",\n \"Zip\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"zip\": {\n \"description\": \"Project's Zip source\",\n \"properties\": {\n \"location\": {\n \"description\": \"Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH\",\n \"type\": \"string\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"registryUrl\": {\n \"type\": \"string\"\n },\n \"starterProjects\": {\n \"description\": \"Overrides of starter projects encapsulated in a parent devfile Overriding is done using a strategic merge patch.\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"git\"\n ]\n },\n {\n \"required\": [\n \"github\"\n ]\n },\n {\n \"required\": [\n \"zip\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"clonePath\": {\n \"description\": \"Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.\",\n \"type\": \"string\"\n },\n \"custom\": {\n \"description\": \"Project's Custom source\",\n \"properties\": {\n \"embeddedResource\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"projectSourceClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"embeddedResource\",\n \"projectSourceClass\"\n ],\n \"type\": \"object\"\n },\n \"description\": {\n \"description\": \"Description of a starter project\",\n \"type\": \"string\"\n },\n \"git\": {\n \"description\": \"Project's Git source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"github\": {\n \"description\": \"Project's GitHub source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Project name\",\n \"type\": \"string\"\n },\n \"sourceType\": {\n \"description\": \"Type of project source\",\n \"enum\": [\n \"Git\",\n \"Github\",\n \"Zip\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"zip\": {\n \"description\": \"Project's Zip source\",\n \"properties\": {\n \"location\": {\n \"description\": \"Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH\",\n \"type\": \"string\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"uri\": {\n \"description\": \"Uri of a Devfile yaml file\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"projects\": {\n \"description\": \"Projects worked on in the workspace, containing names and sources locations\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"git\"\n ]\n },\n {\n \"required\": [\n \"github\"\n ]\n },\n {\n \"required\": [\n \"zip\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"clonePath\": {\n \"description\": \"Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.\",\n \"type\": \"string\"\n },\n \"custom\": {\n \"description\": \"Project's Custom source\",\n \"properties\": {\n \"embeddedResource\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"projectSourceClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"embeddedResource\",\n \"projectSourceClass\"\n ],\n \"type\": \"object\"\n },\n \"git\": {\n \"description\": \"Project's Git source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"github\": {\n \"description\": \"Project's GitHub source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Project name\",\n \"type\": \"string\"\n },\n \"sourceType\": {\n \"description\": \"Type of project source\",\n \"enum\": [\n \"Git\",\n \"Github\",\n \"Zip\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"zip\": {\n \"description\": \"Project's Zip source\",\n \"properties\": {\n \"location\": {\n \"description\": \"Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH\",\n \"type\": \"string\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"starterProjects\": {\n \"description\": \"StarterProjects is a project that can be used as a starting point when bootstrapping new projects\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"git\"\n ]\n },\n {\n \"required\": [\n \"github\"\n ]\n },\n {\n \"required\": [\n \"zip\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"clonePath\": {\n \"description\": \"Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.\",\n \"type\": \"string\"\n },\n \"custom\": {\n \"description\": \"Project's Custom source\",\n \"properties\": {\n \"embeddedResource\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"projectSourceClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"embeddedResource\",\n \"projectSourceClass\"\n ],\n \"type\": \"object\"\n },\n \"description\": {\n \"description\": \"Description of a starter project\",\n \"type\": \"string\"\n },\n \"git\": {\n \"description\": \"Project's Git source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"github\": {\n \"description\": \"Project's GitHub source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Project name\",\n \"type\": \"string\"\n },\n \"sourceType\": {\n \"description\": \"Type of project source\",\n \"enum\": [\n \"Git\",\n \"Github\",\n \"Zip\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"zip\": {\n \"description\": \"Project's Zip source\",\n \"properties\": {\n \"location\": {\n \"description\": \"Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH\",\n \"type\": \"string\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"started\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Dev Workspace\",\n \"type\": \"object\"\n}", + "version": "workspace.devfile.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Dev Workspace", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/devfile/api/main/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Devfile", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#339cf2", + "secondaryColor": "#47a6f3", + "shape": "circle", + "source_uri": "git://github.com/devfile/api/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 705 717\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\" fill=\"#2F9AF2\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\" fill=\"#2F9AF2\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 705 717\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.3.0" + }, + "name": "devfile", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#339cf2", + "secondaryColor": "#47a6f3", + "shape": "circle", + "svgColor": "\u003csvg width=\"705\" height=\"717\" viewBox=\"0 0 705 717\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\"\n fill=\"#2F9AF2\" /\u003e\n \u003cpath\n d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\"\n fill=\"#2F9AF2\" /\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"705\" height=\"717\" viewBox=\"0 0 705 717\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/devfile/v2.3.0/v1.0.0/components/DevWorkspaceTemplate.json b/server/meshmodel/devfile/v2.3.0/v1.0.0/components/DevWorkspaceTemplate.json new file mode 100644 index 00000000000..04381e4f201 --- /dev/null +++ b/server/meshmodel/devfile/v2.3.0/v1.0.0/components/DevWorkspaceTemplate.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DevWorkspaceTemplate", + "schema": "{\n \"description\": \"DevWorkspaceTemplate is the Schema for the devworkspacetemplates API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Structure of the workspace. This is also the specification of a workspace template.\",\n \"properties\": {\n \"commands\": {\n \"description\": \"Predefined, ready-to-use, workspace-related commands\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"exec\"\n ]\n },\n {\n \"required\": [\n \"apply\"\n ]\n },\n {\n \"required\": [\n \"vscodeTask\"\n ]\n },\n {\n \"required\": [\n \"vscodeLaunch\"\n ]\n },\n {\n \"required\": [\n \"composite\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"apply\": {\n \"description\": \"Command that consists in applying a given component definition, typically bound to a workspace event. \\n For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the workspace POD, unless the component has its `dedicatedPod` field set to `true`. \\n When no `apply` command exist for a given component, it is assumed the component will be applied at workspace start by default.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Describes component that will be applied\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"commandType\": {\n \"description\": \"Type of workspace command\",\n \"enum\": [\n \"Exec\",\n \"Apply\",\n \"VscodeTask\",\n \"VscodeLaunch\",\n \"Composite\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"composite\": {\n \"description\": \"Composite command that allows executing several sub-commands either sequentially or concurrently\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commands\": {\n \"description\": \"The commands that comprise this composite command\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"parallel\": {\n \"description\": \"Indicates if the sub-commands should be executed concurrently\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandClass\": {\n \"description\": \"Class of command that the associated implementation component should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom command that the implementation component will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"commandClass\",\n \"embeddedResource\",\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"exec\": {\n \"description\": \"CLI Command executed in an existing component container\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandLine\": {\n \"description\": \"The actual command-line string \\n Special variables that can be used: \\n - `$PROJECTS_ROOT`: A path where projects sources are mounted \\n - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"Describes component to which given action relates\",\n \"type\": \"string\"\n },\n \"env\": {\n \"description\": \"Optional list of environment variables that have to be set before running the command\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"hotReloadCapable\": {\n \"description\": \"Specify whether the command is restarted or not when the source code changes. If set to `true` the command won't be restarted. A *hotReloadCapable* `run` or `debug` command is expected to handle file changes on its own and won't be restarted. A *hotReloadCapable* `build` command is expected to be executed only once and won't be executed again. This field is taken into account only for commands `build`, `run` and `debug` with `isDefault` set to `true`. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"workingDir\": {\n \"description\": \"Working directory where the command should be executed \\n Special variables that can be used: \\n - `${PROJECTS_ROOT}`: A path where projects sources are mounted \\n - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeLaunch\": {\n \"description\": \"Command providing the definition of a VsCode launch action \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeTask\": {\n \"description\": \"Command providing the definition of a VsCode Task \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"List of the workspace components, such as editor and plugins, user-provided containers, or other types of components\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"container\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n },\n {\n \"required\": [\n \"openshift\"\n ]\n },\n {\n \"required\": [\n \"volume\"\n ]\n },\n {\n \"required\": [\n \"plugin\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"componentType\": {\n \"description\": \"Type of component\",\n \"enum\": [\n \"Container\",\n \"Kubernetes\",\n \"Openshift\",\n \"Volume\",\n \"Plugin\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"container\": {\n \"description\": \"Allows adding and configuring workspace-related containers\",\n \"properties\": {\n \"args\": {\n \"description\": \"The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"The command to run in the dockerimage component instead of the default one provided in the image. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dedicatedPod\": {\n \"description\": \"Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"Environment variables used in this container\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"memoryLimit\": {\n \"type\": \"string\"\n },\n \"mountSources\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sourceMapping\": {\n \"description\": \"Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the value of the `PROJECTS_ROOT` environment variable is used.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"List of volumes mounts that should be mounted is this container.\",\n \"items\": {\n \"description\": \"Volume that should be mounted to a component container\",\n \"properties\": {\n \"name\": {\n \"description\": \"The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/\\u003cname\\u003e`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom component whose logic is implementation-dependant and should be provided by the user possibly through some dedicated controller\",\n \"properties\": {\n \"componentClass\": {\n \"description\": \"Class of component that the associated implementation controller should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom component that the implementation controller will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"componentClass\",\n \"embeddedResource\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"kubernetes\": {\n \"description\": \"Allows importing into the workspace the Kubernetes resources defined in a given manifest. For example this allows reusing the Kubernetes definitions used to deploy some runtime components in production.\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"openshift\": {\n \"description\": \"Allows importing into the workspace the OpenShift resources defined in a given manifest. For example this allows reusing the OpenShift definitions used to deploy some runtime components in production.\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"plugin\": {\n \"description\": \"Allows importing a plugin. \\n Plugins are mainly imported devfiles that contribute components, commands and events as a consistent single unit. They are defined in either YAML files following the devfile syntax, or as `DevWorkspaceTemplate` Kubernetes Custom Resources\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"id\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n }\n ],\n \"properties\": {\n \"commands\": {\n \"description\": \"Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done using a strategic merge patch\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"exec\"\n ]\n },\n {\n \"required\": [\n \"apply\"\n ]\n },\n {\n \"required\": [\n \"vscodeTask\"\n ]\n },\n {\n \"required\": [\n \"vscodeLaunch\"\n ]\n },\n {\n \"required\": [\n \"composite\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"apply\": {\n \"description\": \"Command that consists in applying a given component definition, typically bound to a workspace event. \\n For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the workspace POD, unless the component has its `dedicatedPod` field set to `true`. \\n When no `apply` command exist for a given component, it is assumed the component will be applied at workspace start by default.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Describes component that will be applied\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"commandType\": {\n \"description\": \"Type of workspace command\",\n \"enum\": [\n \"Exec\",\n \"Apply\",\n \"VscodeTask\",\n \"VscodeLaunch\",\n \"Composite\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"composite\": {\n \"description\": \"Composite command that allows executing several sub-commands either sequentially or concurrently\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commands\": {\n \"description\": \"The commands that comprise this composite command\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"parallel\": {\n \"description\": \"Indicates if the sub-commands should be executed concurrently\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandClass\": {\n \"description\": \"Class of command that the associated implementation component should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom command that the implementation component will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"commandClass\",\n \"embeddedResource\",\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"exec\": {\n \"description\": \"CLI Command executed in an existing component container\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandLine\": {\n \"description\": \"The actual command-line string \\n Special variables that can be used: \\n - `$PROJECTS_ROOT`: A path where projects sources are mounted \\n - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"Describes component to which given action relates\",\n \"type\": \"string\"\n },\n \"env\": {\n \"description\": \"Optional list of environment variables that have to be set before running the command\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"hotReloadCapable\": {\n \"description\": \"Specify whether the command is restarted or not when the source code changes. If set to `true` the command won't be restarted. A *hotReloadCapable* `run` or `debug` command is expected to handle file changes on its own and won't be restarted. A *hotReloadCapable* `build` command is expected to be executed only once and won't be executed again. This field is taken into account only for commands `build`, `run` and `debug` with `isDefault` set to `true`. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"workingDir\": {\n \"description\": \"Working directory where the command should be executed \\n Special variables that can be used: \\n - `${PROJECTS_ROOT}`: A path where projects sources are mounted \\n - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeLaunch\": {\n \"description\": \"Command providing the definition of a VsCode launch action \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeTask\": {\n \"description\": \"Command providing the definition of a VsCode Task \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"Overrides of components encapsulated in a plugin. Overriding is done using a strategic merge patch. A plugin cannot override embedded plugin components.\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"container\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n },\n {\n \"required\": [\n \"openshift\"\n ]\n },\n {\n \"required\": [\n \"volume\"\n ]\n }\n ],\n \"properties\": {\n \"componentType\": {\n \"description\": \"Type of component override for a plugin\",\n \"enum\": [\n \"Container\",\n \"Kubernetes\",\n \"Openshift\",\n \"Volume\"\n ],\n \"type\": \"string\"\n },\n \"container\": {\n \"description\": \"Configuration overriding for a Container component in a plugin\",\n \"properties\": {\n \"args\": {\n \"description\": \"The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"The command to run in the dockerimage component instead of the default one provided in the image. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dedicatedPod\": {\n \"description\": \"Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"Environment variables used in this container\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"memoryLimit\": {\n \"type\": \"string\"\n },\n \"mountSources\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sourceMapping\": {\n \"description\": \"Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the value of the `PROJECTS_ROOT` environment variable is used.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"List of volumes mounts that should be mounted is this container.\",\n \"items\": {\n \"description\": \"Volume that should be mounted to a component container\",\n \"properties\": {\n \"name\": {\n \"description\": \"The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/\\u003cname\\u003e`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"kubernetes\": {\n \"description\": \"Configuration overriding for a Kubernetes component in a plugin\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"openshift\": {\n \"description\": \"Configuration overriding for an OpenShift component in a plugin\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"volume\": {\n \"description\": \"Configuration overriding for a Volume component in a plugin\",\n \"properties\": {\n \"ephemeral\": {\n \"description\": \"Ephemeral volumes are not stored persistently across restarts. Defaults to false\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the Volume component in Container volume mounts or inside a parent\",\n \"type\": \"string\"\n },\n \"size\": {\n \"description\": \"Size of the volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"id\": {\n \"description\": \"Id in a registry that contains a Devfile yaml file\",\n \"type\": \"string\"\n },\n \"importReferenceType\": {\n \"description\": \"type of location from where the referenced template structure should be retrieved\",\n \"enum\": [\n \"Uri\",\n \"Id\",\n \"Kubernetes\"\n ],\n \"type\": \"string\"\n },\n \"kubernetes\": {\n \"description\": \"Reference to a Kubernetes CRD of type DevWorkspaceTemplate\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Optional name that allows referencing the component in commands, or inside a parent If omitted it will be infered from the location (uri or registryEntry)\",\n \"type\": \"string\"\n },\n \"registryUrl\": {\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Uri of a Devfile yaml file\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volume\": {\n \"description\": \"Allows specifying the definition of a volume shared by several other components\",\n \"properties\": {\n \"ephemeral\": {\n \"description\": \"Ephemeral volumes are not stored persistently across restarts. Defaults to false\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the Volume component in Container volume mounts or inside a parent\",\n \"type\": \"string\"\n },\n \"size\": {\n \"description\": \"Size of the volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"events\": {\n \"description\": \"Bindings of commands to events. Each command is referred-to by its name.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"Names of commands that should be executed after the workspace is completely started. In the case of Che-Theia, these commands should be executed after all plugins and extensions have started, including project cloning. This means that those commands are not triggered until the user opens the IDE in his browser.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"postStop\": {\n \"description\": \"Names of commands that should be executed after stopping the workspace.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"preStart\": {\n \"description\": \"Names of commands that should be executed before the workspace start. Kubernetes-wise, these commands would typically be executed in init containers of the workspace POD.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"preStop\": {\n \"description\": \"Names of commands that should be executed before stopping the workspace.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"parent\": {\n \"description\": \"Parent workspace template\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"id\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n }\n ],\n \"properties\": {\n \"commands\": {\n \"description\": \"Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done using a strategic merge patch\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"exec\"\n ]\n },\n {\n \"required\": [\n \"apply\"\n ]\n },\n {\n \"required\": [\n \"vscodeTask\"\n ]\n },\n {\n \"required\": [\n \"vscodeLaunch\"\n ]\n },\n {\n \"required\": [\n \"composite\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"apply\": {\n \"description\": \"Command that consists in applying a given component definition, typically bound to a workspace event. \\n For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the workspace POD, unless the component has its `dedicatedPod` field set to `true`. \\n When no `apply` command exist for a given component, it is assumed the component will be applied at workspace start by default.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Describes component that will be applied\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"commandType\": {\n \"description\": \"Type of workspace command\",\n \"enum\": [\n \"Exec\",\n \"Apply\",\n \"VscodeTask\",\n \"VscodeLaunch\",\n \"Composite\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"composite\": {\n \"description\": \"Composite command that allows executing several sub-commands either sequentially or concurrently\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commands\": {\n \"description\": \"The commands that comprise this composite command\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"parallel\": {\n \"description\": \"Indicates if the sub-commands should be executed concurrently\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandClass\": {\n \"description\": \"Class of command that the associated implementation component should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom command that the implementation component will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"commandClass\",\n \"embeddedResource\",\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"exec\": {\n \"description\": \"CLI Command executed in an existing component container\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandLine\": {\n \"description\": \"The actual command-line string \\n Special variables that can be used: \\n - `$PROJECTS_ROOT`: A path where projects sources are mounted \\n - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"Describes component to which given action relates\",\n \"type\": \"string\"\n },\n \"env\": {\n \"description\": \"Optional list of environment variables that have to be set before running the command\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"hotReloadCapable\": {\n \"description\": \"Specify whether the command is restarted or not when the source code changes. If set to `true` the command won't be restarted. A *hotReloadCapable* `run` or `debug` command is expected to handle file changes on its own and won't be restarted. A *hotReloadCapable* `build` command is expected to be executed only once and won't be executed again. This field is taken into account only for commands `build`, `run` and `debug` with `isDefault` set to `true`. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"workingDir\": {\n \"description\": \"Working directory where the command should be executed \\n Special variables that can be used: \\n - `${PROJECTS_ROOT}`: A path where projects sources are mounted \\n - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeLaunch\": {\n \"description\": \"Command providing the definition of a VsCode launch action \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeTask\": {\n \"description\": \"Command providing the definition of a VsCode Task \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"Overrides of components encapsulated in a parent devfile. Overriding is done using a strategic merge patch\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"container\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n },\n {\n \"required\": [\n \"openshift\"\n ]\n },\n {\n \"required\": [\n \"volume\"\n ]\n },\n {\n \"required\": [\n \"plugin\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"componentType\": {\n \"description\": \"Type of component\",\n \"enum\": [\n \"Container\",\n \"Kubernetes\",\n \"Openshift\",\n \"Volume\",\n \"Plugin\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"container\": {\n \"description\": \"Allows adding and configuring workspace-related containers\",\n \"properties\": {\n \"args\": {\n \"description\": \"The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"The command to run in the dockerimage component instead of the default one provided in the image. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dedicatedPod\": {\n \"description\": \"Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"Environment variables used in this container\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"memoryLimit\": {\n \"type\": \"string\"\n },\n \"mountSources\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sourceMapping\": {\n \"description\": \"Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the value of the `PROJECTS_ROOT` environment variable is used.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"List of volumes mounts that should be mounted is this container.\",\n \"items\": {\n \"description\": \"Volume that should be mounted to a component container\",\n \"properties\": {\n \"name\": {\n \"description\": \"The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/\\u003cname\\u003e`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom component whose logic is implementation-dependant and should be provided by the user possibly through some dedicated controller\",\n \"properties\": {\n \"componentClass\": {\n \"description\": \"Class of component that the associated implementation controller should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom component that the implementation controller will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"componentClass\",\n \"embeddedResource\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"kubernetes\": {\n \"description\": \"Allows importing into the workspace the Kubernetes resources defined in a given manifest. For example this allows reusing the Kubernetes definitions used to deploy some runtime components in production.\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"openshift\": {\n \"description\": \"Allows importing into the workspace the OpenShift resources defined in a given manifest. For example this allows reusing the OpenShift definitions used to deploy some runtime components in production.\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"plugin\": {\n \"description\": \"Allows importing a plugin. \\n Plugins are mainly imported devfiles that contribute components, commands and events as a consistent single unit. They are defined in either YAML files following the devfile syntax, or as `DevWorkspaceTemplate` Kubernetes Custom Resources\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"id\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n }\n ],\n \"properties\": {\n \"commands\": {\n \"description\": \"Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done using a strategic merge patch\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"exec\"\n ]\n },\n {\n \"required\": [\n \"apply\"\n ]\n },\n {\n \"required\": [\n \"vscodeTask\"\n ]\n },\n {\n \"required\": [\n \"vscodeLaunch\"\n ]\n },\n {\n \"required\": [\n \"composite\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"apply\": {\n \"description\": \"Command that consists in applying a given component definition, typically bound to a workspace event. \\n For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the workspace POD, unless the component has its `dedicatedPod` field set to `true`. \\n When no `apply` command exist for a given component, it is assumed the component will be applied at workspace start by default.\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"component\": {\n \"description\": \"Describes component that will be applied\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"commandType\": {\n \"description\": \"Type of workspace command\",\n \"enum\": [\n \"Exec\",\n \"Apply\",\n \"VscodeTask\",\n \"VscodeLaunch\",\n \"Composite\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"composite\": {\n \"description\": \"Composite command that allows executing several sub-commands either sequentially or concurrently\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commands\": {\n \"description\": \"The commands that comprise this composite command\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"parallel\": {\n \"description\": \"Indicates if the sub-commands should be executed concurrently\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"custom\": {\n \"description\": \"Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandClass\": {\n \"description\": \"Class of command that the associated implementation component should use to process this command with the appropriate logic\",\n \"type\": \"string\"\n },\n \"embeddedResource\": {\n \"description\": \"Additional free-form configuration for this custom command that the implementation component will know how to use\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"commandClass\",\n \"embeddedResource\",\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"exec\": {\n \"description\": \"CLI Command executed in an existing component container\",\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"commandLine\": {\n \"description\": \"The actual command-line string \\n Special variables that can be used: \\n - `$PROJECTS_ROOT`: A path where projects sources are mounted \\n - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"Describes component to which given action relates\",\n \"type\": \"string\"\n },\n \"env\": {\n \"description\": \"Optional list of environment variables that have to be set before running the command\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"hotReloadCapable\": {\n \"description\": \"Specify whether the command is restarted or not when the source code changes. If set to `true` the command won't be restarted. A *hotReloadCapable* `run` or `debug` command is expected to handle file changes on its own and won't be restarted. A *hotReloadCapable* `build` command is expected to be executed only once and won't be executed again. This field is taken into account only for commands `build`, `run` and `debug` with `isDefault` set to `true`. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"Optional label that provides a label for this command to be used in Editor UI menus for example\",\n \"type\": \"string\"\n },\n \"workingDir\": {\n \"description\": \"Working directory where the command should be executed \\n Special variables that can be used: \\n - `${PROJECTS_ROOT}`: A path where projects sources are mounted \\n - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/\\u003cproject-name\\u003e). If there are multiple projects, this will point to the directory of the first one.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeLaunch\": {\n \"description\": \"Command providing the definition of a VsCode launch action \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"vscodeTask\": {\n \"description\": \"Command providing the definition of a VsCode Task \\n Deprecated; removed in v1alpha2\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional map of free-form additional command attributes\",\n \"type\": \"object\"\n },\n \"group\": {\n \"description\": \"Defines the group this command is part of\",\n \"properties\": {\n \"isDefault\": {\n \"description\": \"Identifies the default command for a given group kind\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of group the command is part of\",\n \"enum\": [\n \"build\",\n \"run\",\n \"test\",\n \"debug\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"id\": {\n \"description\": \"Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.\",\n \"type\": \"string\"\n },\n \"inlined\": {\n \"description\": \"Inlined content of the VsCode configuration\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Vscode configuration command location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location as an absolute of relative URI the VsCode configuration will be fetched from\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"Overrides of components encapsulated in a plugin. Overriding is done using a strategic merge patch. A plugin cannot override embedded plugin components.\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"container\"\n ]\n },\n {\n \"required\": [\n \"kubernetes\"\n ]\n },\n {\n \"required\": [\n \"openshift\"\n ]\n },\n {\n \"required\": [\n \"volume\"\n ]\n }\n ],\n \"properties\": {\n \"componentType\": {\n \"description\": \"Type of component override for a plugin\",\n \"enum\": [\n \"Container\",\n \"Kubernetes\",\n \"Openshift\",\n \"Volume\"\n ],\n \"type\": \"string\"\n },\n \"container\": {\n \"description\": \"Configuration overriding for a Container component in a plugin\",\n \"properties\": {\n \"args\": {\n \"description\": \"The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"The command to run in the dockerimage component instead of the default one provided in the image. \\n Defaults to an empty array, meaning use whatever is defined in the image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dedicatedPod\": {\n \"description\": \"Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. \\n Default value is `false`\",\n \"type\": \"boolean\"\n },\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"Environment variables used in this container\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"memoryLimit\": {\n \"type\": \"string\"\n },\n \"mountSources\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sourceMapping\": {\n \"description\": \"Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the value of the `PROJECTS_ROOT` environment variable is used.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"List of volumes mounts that should be mounted is this container.\",\n \"items\": {\n \"description\": \"Volume that should be mounted to a component container\",\n \"properties\": {\n \"name\": {\n \"description\": \"The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/\\u003cname\\u003e`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"kubernetes\": {\n \"description\": \"Configuration overriding for a Kubernetes component in a plugin\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"openshift\": {\n \"description\": \"Configuration overriding for an OpenShift component in a plugin\",\n \"oneOf\": [\n {\n \"required\": [\n \"uri\"\n ]\n },\n {\n \"required\": [\n \"inlined\"\n ]\n }\n ],\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of implementation-dependant string-based free-form attributes. \\n Examples of Che-specific attributes: \\n - cookiesAuthEnabled: \\\"true\\\" / \\\"false\\\", \\n - type: \\\"terminal\\\" / \\\"ide\\\" / \\\"ide-dev\\\",\",\n \"type\": \"object\"\n },\n \"exposure\": {\n \"description\": \"Describes how the endpoint should be exposed on the network. \\n - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. \\n - `internal` means that the endpoint will be exposed internally outside of the main workspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. \\n - `none` means that the endpoint will not be exposed and will only be accessible inside the main workspace POD, on a local address. \\n Default value is `public`\",\n \"enum\": [\n \"public\",\n \"internal\",\n \"none\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path of the endpoint URL\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Describes the application and transport protocols of the traffic that will go through this endpoint. \\n - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. \\n - `https`: Endpoint will have `https` traffic, typically on a TCP connection. \\n - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. \\n - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. \\n - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. \\n - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. \\n Default value is `http`\",\n \"type\": \"string\"\n },\n \"secure\": {\n \"description\": \"Describes whether the endpoint should be secured and protected by some authentication process\",\n \"type\": \"boolean\"\n },\n \"targetPort\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"inlined\": {\n \"description\": \"Inlined manifest\",\n \"type\": \"string\"\n },\n \"locationType\": {\n \"description\": \"Type of Kubernetes-like location\",\n \"enum\": [\n \"Uri\",\n \"Inlined\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the component in commands, or inside a parent\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Location in a file fetched from a uri.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"volume\": {\n \"description\": \"Configuration overriding for a Volume component in a plugin\",\n \"properties\": {\n \"ephemeral\": {\n \"description\": \"Ephemeral volumes are not stored persistently across restarts. Defaults to false\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the Volume component in Container volume mounts or inside a parent\",\n \"type\": \"string\"\n },\n \"size\": {\n \"description\": \"Size of the volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"id\": {\n \"description\": \"Id in a registry that contains a Devfile yaml file\",\n \"type\": \"string\"\n },\n \"importReferenceType\": {\n \"description\": \"type of location from where the referenced template structure should be retrieved\",\n \"enum\": [\n \"Uri\",\n \"Id\",\n \"Kubernetes\"\n ],\n \"type\": \"string\"\n },\n \"kubernetes\": {\n \"description\": \"Reference to a Kubernetes CRD of type DevWorkspaceTemplate\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Optional name that allows referencing the component in commands, or inside a parent If omitted it will be infered from the location (uri or registryEntry)\",\n \"type\": \"string\"\n },\n \"registryUrl\": {\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"Uri of a Devfile yaml file\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volume\": {\n \"description\": \"Allows specifying the definition of a volume shared by several other components\",\n \"properties\": {\n \"ephemeral\": {\n \"description\": \"Ephemeral volumes are not stored persistently across restarts. Defaults to false\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Mandatory name that allows referencing the Volume component in Container volume mounts or inside a parent\",\n \"type\": \"string\"\n },\n \"size\": {\n \"description\": \"Size of the volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"id\": {\n \"description\": \"Id in a registry that contains a Devfile yaml file\",\n \"type\": \"string\"\n },\n \"importReferenceType\": {\n \"description\": \"type of location from where the referenced template structure should be retrieved\",\n \"enum\": [\n \"Uri\",\n \"Id\",\n \"Kubernetes\"\n ],\n \"type\": \"string\"\n },\n \"kubernetes\": {\n \"description\": \"Reference to a Kubernetes CRD of type DevWorkspaceTemplate\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"projects\": {\n \"description\": \"Overrides of projects encapsulated in a parent devfile. Overriding is done using a strategic merge patch.\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"git\"\n ]\n },\n {\n \"required\": [\n \"github\"\n ]\n },\n {\n \"required\": [\n \"zip\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"clonePath\": {\n \"description\": \"Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.\",\n \"type\": \"string\"\n },\n \"custom\": {\n \"description\": \"Project's Custom source\",\n \"properties\": {\n \"embeddedResource\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"projectSourceClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"embeddedResource\",\n \"projectSourceClass\"\n ],\n \"type\": \"object\"\n },\n \"git\": {\n \"description\": \"Project's Git source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"github\": {\n \"description\": \"Project's GitHub source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Project name\",\n \"type\": \"string\"\n },\n \"sourceType\": {\n \"description\": \"Type of project source\",\n \"enum\": [\n \"Git\",\n \"Github\",\n \"Zip\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"zip\": {\n \"description\": \"Project's Zip source\",\n \"properties\": {\n \"location\": {\n \"description\": \"Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH\",\n \"type\": \"string\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"registryUrl\": {\n \"type\": \"string\"\n },\n \"starterProjects\": {\n \"description\": \"Overrides of starter projects encapsulated in a parent devfile Overriding is done using a strategic merge patch.\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"git\"\n ]\n },\n {\n \"required\": [\n \"github\"\n ]\n },\n {\n \"required\": [\n \"zip\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"clonePath\": {\n \"description\": \"Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.\",\n \"type\": \"string\"\n },\n \"custom\": {\n \"description\": \"Project's Custom source\",\n \"properties\": {\n \"embeddedResource\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"projectSourceClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"embeddedResource\",\n \"projectSourceClass\"\n ],\n \"type\": \"object\"\n },\n \"description\": {\n \"description\": \"Description of a starter project\",\n \"type\": \"string\"\n },\n \"git\": {\n \"description\": \"Project's Git source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"github\": {\n \"description\": \"Project's GitHub source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Project name\",\n \"type\": \"string\"\n },\n \"sourceType\": {\n \"description\": \"Type of project source\",\n \"enum\": [\n \"Git\",\n \"Github\",\n \"Zip\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"zip\": {\n \"description\": \"Project's Zip source\",\n \"properties\": {\n \"location\": {\n \"description\": \"Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH\",\n \"type\": \"string\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"uri\": {\n \"description\": \"Uri of a Devfile yaml file\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"projects\": {\n \"description\": \"Projects worked on in the workspace, containing names and sources locations\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"git\"\n ]\n },\n {\n \"required\": [\n \"github\"\n ]\n },\n {\n \"required\": [\n \"zip\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"clonePath\": {\n \"description\": \"Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.\",\n \"type\": \"string\"\n },\n \"custom\": {\n \"description\": \"Project's Custom source\",\n \"properties\": {\n \"embeddedResource\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"projectSourceClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"embeddedResource\",\n \"projectSourceClass\"\n ],\n \"type\": \"object\"\n },\n \"git\": {\n \"description\": \"Project's Git source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"github\": {\n \"description\": \"Project's GitHub source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Project name\",\n \"type\": \"string\"\n },\n \"sourceType\": {\n \"description\": \"Type of project source\",\n \"enum\": [\n \"Git\",\n \"Github\",\n \"Zip\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"zip\": {\n \"description\": \"Project's Zip source\",\n \"properties\": {\n \"location\": {\n \"description\": \"Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH\",\n \"type\": \"string\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"starterProjects\": {\n \"description\": \"StarterProjects is a project that can be used as a starting point when bootstrapping new projects\",\n \"items\": {\n \"oneOf\": [\n {\n \"required\": [\n \"git\"\n ]\n },\n {\n \"required\": [\n \"github\"\n ]\n },\n {\n \"required\": [\n \"zip\"\n ]\n },\n {\n \"required\": [\n \"custom\"\n ]\n }\n ],\n \"properties\": {\n \"clonePath\": {\n \"description\": \"Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.\",\n \"type\": \"string\"\n },\n \"custom\": {\n \"description\": \"Project's Custom source\",\n \"properties\": {\n \"embeddedResource\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"projectSourceClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"embeddedResource\",\n \"projectSourceClass\"\n ],\n \"type\": \"object\"\n },\n \"description\": {\n \"description\": \"Description of a starter project\",\n \"type\": \"string\"\n },\n \"git\": {\n \"description\": \"Project's Git source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"github\": {\n \"description\": \"Project's GitHub source\",\n \"properties\": {\n \"checkoutFrom\": {\n \"description\": \"Defines from what the project should be checked out. Required if there are more than one remote configured\",\n \"properties\": {\n \"remote\": {\n \"description\": \"The remote name should be used as init. Required if there are more than one remote configured\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"remotes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The remotes map which should be initialized in the git project. Must have at least one remote configured\",\n \"type\": \"object\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Project name\",\n \"type\": \"string\"\n },\n \"sourceType\": {\n \"description\": \"Type of project source\",\n \"enum\": [\n \"Git\",\n \"Github\",\n \"Zip\",\n \"Custom\"\n ],\n \"type\": \"string\"\n },\n \"zip\": {\n \"description\": \"Project's Zip source\",\n \"properties\": {\n \"location\": {\n \"description\": \"Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH\",\n \"type\": \"string\"\n },\n \"sparseCheckoutDir\": {\n \"description\": \"Part of project to populate in the working directory.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Dev Workspace Template\",\n \"type\": \"object\"\n}", + "version": "workspace.devfile.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Dev Workspace Template", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/devfile/api/main/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Devfile", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#339cf2", + "secondaryColor": "#47a6f3", + "shape": "circle", + "source_uri": "git://github.com/devfile/api/main/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 705 717\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\" fill=\"#2F9AF2\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\" fill=\"#2F9AF2\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 705 717\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.3.0" + }, + "name": "devfile", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#339cf2", + "secondaryColor": "#47a6f3", + "shape": "circle", + "svgColor": "\u003csvg width=\"705\" height=\"717\" viewBox=\"0 0 705 717\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\"\n fill=\"#2F9AF2\" /\u003e\n \u003cpath\n d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\"\n fill=\"#2F9AF2\" /\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"705\" height=\"717\" viewBox=\"0 0 705 717\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/devfile/v2.3.0/v1.0.0/model.json b/server/meshmodel/devfile/v2.3.0/v1.0.0/model.json new file mode 100644 index 00000000000..954ab6440c0 --- /dev/null +++ b/server/meshmodel/devfile/v2.3.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "App Definition and Development" + }, + "displayName": "Devfile", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#339cf2", + "secondaryColor": "#47a6f3", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 705 717\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\" fill=\"#2F9AF2\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\" fill=\"#2F9AF2\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 705 717\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M533 321.024C532.988 297.057 527.105 273.399 515.787 251.808C504.47 230.218 488.009 211.249 467.628 196.31C465.669 205.344 460.841 213.641 453.754 220.151L440.21 232.606C462.714 250.118 477.82 274.337 482.895 301.042C487.97 327.747 482.691 355.243 467.979 378.735C453.267 402.227 430.055 420.225 402.39 429.591C374.726 438.957 344.365 439.097 316.6 429.986C288.835 420.875 265.429 403.091 250.462 379.735C235.495 356.38 229.917 328.934 234.701 302.184C239.485 275.434 254.327 251.076 276.639 233.359C298.951 215.641 327.318 205.687 356.794 205.233L316.359 242.417C311.859 246.556 309.33 252.169 309.33 258.021C309.33 263.874 311.859 269.487 316.359 273.626C320.859 277.764 326.963 280.089 333.328 280.089C339.692 280.089 345.796 277.764 350.296 273.626L412.683 216.235L431.078 199.318C434.375 196.259 436.323 192.186 436.546 187.884C436.769 183.582 435.251 179.356 432.286 176.023C431.737 175.801 428.686 172.611 427.39 171.42L350.23 100.464C345.73 96.325 339.626 94 333.262 94C326.897 94 320.793 96.325 316.293 100.464C311.793 104.602 309.264 110.215 309.264 116.068C309.264 121.921 311.793 127.534 316.293 131.672L348.54 161.327C314.636 163.199 282.07 174.157 254.858 192.848C227.647 211.54 206.98 237.148 195.408 266.514C183.836 295.879 181.865 327.718 189.738 358.101C197.61 388.485 214.983 416.084 239.711 437.496C264.44 458.907 295.443 473.193 328.897 478.592C362.351 483.991 396.791 480.266 427.97 467.877C459.149 455.488 485.702 434.977 504.354 408.874C523.006 382.771 532.942 352.218 532.934 320.984L533 321.024Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M705 325.243C705 145.893 546.859 0 352.5 0C158.141 0 0 145.974 0 325.243C0 503.035 155.399 647.875 347.455 650.385L316.195 679.228C311.698 683.377 309.171 689.005 309.171 694.873C309.171 700.742 311.698 706.37 316.195 710.519C320.692 714.669 326.792 717 333.152 717C339.512 717 345.612 714.669 350.109 710.519L422.061 644.11H422.193L430.968 636.014C434.509 632.736 436.498 628.296 436.498 623.668C436.498 619.039 434.509 614.599 430.968 611.321L418.244 599.582H418.113L350.109 536.836C345.612 532.687 339.512 530.356 333.152 530.356C326.792 530.356 320.692 532.687 316.195 536.836C311.698 540.986 309.171 546.614 309.171 552.482C309.171 558.351 311.698 563.978 316.195 568.128L357.282 606.038C355.681 606.038 354.101 606.16 352.5 606.16C184.553 606.16 47.9535 480.082 47.9535 325.142C47.9535 170.202 184.553 44.2455 352.5 44.2455C520.447 44.2455 657.047 170.262 657.047 325.243C657.047 447.576 571.845 551.834 453.321 590.392L453.518 590.554C459.407 596.004 463.757 602.702 466.189 610.063C468.622 617.424 469.061 625.222 467.47 632.776C605.561 588.611 705 467.452 705 325.243Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.3.0" + }, + "name": "devfile", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/dragonfly/v1.1.7/v1.0.0/components/Dragonfly.json b/server/meshmodel/dragonfly/v1.1.7/v1.0.0/components/Dragonfly.json new file mode 100644 index 00000000000..bff52b57e38 --- /dev/null +++ b/server/meshmodel/dragonfly/v1.1.7/v1.0.0/components/Dragonfly.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Dragonfly", + "schema": "{\n \"description\": \"Dragonfly is the Schema for the dragonflies API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DragonflySpec defines the desired state of Dragonfly\",\n \"properties\": {\n \"aclFromSecret\": {\n \"description\": \"(Optional) Acl file Secret to pass to the container\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"affinity\": {\n \"description\": \"(Optional) Dragonfly pod affinity\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"(Optional) Annotations to add to the Dragonfly pods.\",\n \"type\": \"object\"\n },\n \"args\": {\n \"description\": \"(Optional) Dragonfly container args to pass to the container\\nRefer to the Dragonfly documentation for the list of supported args\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"authentication\": {\n \"description\": \"(Optional) Dragonfly Authentication mechanism\",\n \"properties\": {\n \"clientCaCertSecret\": {\n \"description\": \"(Optional) If specified, the Dragonfly instance will check if the\\nclient certificate is signed by this CA. Server TLS must be enabled for this.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"passwordFromSecret\": {\n \"description\": \"(Optional) Dragonfly Password from Secret as a reference to a specific key\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"env\": {\n \"description\": \"(Optional) Env variables to add to the Dragonfly pods.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Image is the Dragonfly image to use\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"(Optional) Labels to add to the Dragonfly pods.\",\n \"type\": \"object\"\n },\n \"memcachedPort\": {\n \"description\": \"(Optional) Dragonfly memcached port\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"(Optional) Dragonfly pod node selector\",\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"(Optional) Dragonfly pod priority class name\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Replicas is the total number of Dragonfly instances including the master\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"(Optional) Dragonfly container resource limits. Any container limits\\ncan be specified.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"description\": \"(Optional) Dragonfly pod service account name\",\n \"type\": \"string\"\n },\n \"serviceSpec\": {\n \"description\": \"(Optional) Dragonfly Service configuration\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"(Optional) Dragonfly Service Annotations\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"(Optional) Dragonfly Service Labels\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"(Optional) Dragonfly Service name\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"(Optional) Dragonfly Service nodePort\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"(Optional) Dragonfly Service type\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"skipFSGroup\": {\n \"description\": \"(Optional) Skip Assigning FileSystem Group. Required for platforms such as Openshift that require IDs to not be set, as it injects a fixed randomized ID per namespace into all pods.\",\n \"type\": \"boolean\"\n },\n \"snapshot\": {\n \"description\": \"(Optional) Dragonfly Snapshot configuration\",\n \"properties\": {\n \"cron\": {\n \"description\": \"(Optional) Dragonfly snapshot schedule\",\n \"type\": \"string\"\n },\n \"dir\": {\n \"description\": \"(Optional) The path to the snapshot directory\\nThis can also be an S3 URI with the prefix `s3://` when\\nusing S3 as the snapshot backend\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaimSpec\": {\n \"description\": \"(Optional) Dragonfly PVC spec\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsSecretRef\": {\n \"description\": \"(Optional) Dragonfly TLS secret to used for TLS\\nConnections to Dragonfly. Dragonfly instance must\\nhave access to this secret and be in the same namespace\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"tolerations\": {\n \"description\": \"(Optional) Dragonfly pod tolerations\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"(Optional) Dragonfly pod topologySpreadConstraints\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Dragonfly\",\n \"type\": \"object\"\n}", + "version": "dragonflydb.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Dragonfly", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/dragonflydb/dragonfly-operator/main/manifests" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Dragonfly", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#4aba58", + "secondaryColor": "#8FFF9D", + "shape": "circle", + "source_uri": "git://github.com/dragonflydb/dragonfly-operator/main/manifests", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"0.92 -5.08 357.16 368.16\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"linear-gradient\" x1=\"8.049\" x2=\"223.705\" y1=\"185.068\" y2=\"185.068\" gradientTransform=\"matrix(1 0 0 -1 0 362)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#006934\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#006934\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#4aba58}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"_编组_\" data-name=\"编组\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"_编组_2\" data-name=\"编组 2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_\" d=\"M228.765 30.362L179.644 2l-49.093 28.362 49.093 28.335 49.121-28.335z\" class=\"cls-1\" data-name=\"路径\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_2\" d=\"M152.896 215.413l7.001 129.366 19.747 11.405 19.774-11.405 7.002-129.366-26.776-15.453-26.748 15.453z\" class=\"cls-1\" data-name=\"路径 2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_3\" d=\"M265.496 108.474L351.24 58.97l-35.91-20.758a27.35 27.35 0 0 0-13.676-3.802 25.819 25.819 0 0 0-13.183 3.555l-72.532 41.9z\" class=\"cls-1\" data-name=\"路径 3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_4\" d=\"M265.414 150.43l85.743 49.503-35.938 20.759a27.35 27.35 0 0 1-13.675 3.802 25.818 25.818 0 0 1-13.183-3.556l-72.505-41.873z\" class=\"cls-1\" data-name=\"路径 4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_5\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556L179.7 157.978z\" class=\"cls-1\" data-name=\"路径 5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_6\" d=\"M179.644 158.033L8.049 58.97l35.91-20.758a27.35 27.35 0 0 1 13.676-3.802 25.819 25.819 0 0 1 13.183 3.555l158.412 91.46z\" class=\"cls-1\" data-name=\"路径 6\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_7\" fill=\"url(#linear-gradient)\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556l78.769-45.51a19.774 19.774 0 0 0 .793-34.243 1040.537 1040.537 0 0 1-20.321-11.706z\" data-name=\"路径 7\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"0.92 -5.08 357.16 368.16\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"_编组_\" data-name=\"编组\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"_编组_2\" data-name=\"编组 2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_\" d=\"M228.765 30.362L179.644 2l-49.093 28.362 49.093 28.335 49.121-28.335z\" class=\"cls-1\" data-name=\"路径\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_2\" d=\"M152.896 215.413l7.001 129.366 19.747 11.405 19.774-11.405 7.002-129.366-26.776-15.453-26.748 15.453z\" class=\"cls-1\" data-name=\"路径 2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_3\" d=\"M265.496 108.474L351.24 58.97l-35.91-20.758a27.35 27.35 0 0 0-13.676-3.802 25.819 25.819 0 0 0-13.183 3.555l-72.532 41.9z\" class=\"cls-1\" data-name=\"路径 3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_4\" d=\"M265.414 150.43l85.743 49.503-35.938 20.759a27.35 27.35 0 0 1-13.675 3.802 25.818 25.818 0 0 1-13.183-3.556l-72.505-41.873z\" class=\"cls-1\" data-name=\"路径 4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_5\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556L179.7 157.978z\" class=\"cls-1\" data-name=\"路径 5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_6\" d=\"M179.644 158.033L8.049 58.97l35.91-20.758a27.35 27.35 0 0 1 13.676-3.802 25.819 25.819 0 0 1 13.183 3.555l158.412 91.46z\" class=\"cls-1\" data-name=\"路径 6\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_7\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556l78.769-45.51a19.774 19.774 0 0 0 .793-34.243 1040.537 1040.537 0 0 1-20.321-11.706z\" class=\"cls-1\" data-name=\"路径 7\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.1.7" + }, + "name": "dragonfly", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Container Registry", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#4aba58", + "secondaryColor": "#8FFF9D", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"0.92 -5.08 357.16 368.16\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"linear-gradient\" x1=\"8.049\" x2=\"223.705\" y1=\"185.068\" y2=\"185.068\" gradientTransform=\"matrix(1 0 0 -1 0 362)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#006934\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#006934\"/\u003e\u003c/linearGradient\u003e\u003cstyle\u003e.cls-1{fill:#4aba58}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"_编组_\" data-name=\"编组\"\u003e\u003cg id=\"_编组_2\" data-name=\"编组 2\"\u003e\u003cpath id=\"_路径_\" d=\"M228.765 30.362L179.644 2l-49.093 28.362 49.093 28.335 49.121-28.335z\" class=\"cls-1\" data-name=\"路径\"/\u003e\u003cpath id=\"_路径_2\" d=\"M152.896 215.413l7.001 129.366 19.747 11.405 19.774-11.405 7.002-129.366-26.776-15.453-26.748 15.453z\" class=\"cls-1\" data-name=\"路径 2\"/\u003e\u003cpath id=\"_路径_3\" d=\"M265.496 108.474L351.24 58.97l-35.91-20.758a27.35 27.35 0 0 0-13.676-3.802 25.819 25.819 0 0 0-13.183 3.555l-72.532 41.9z\" class=\"cls-1\" data-name=\"路径 3\"/\u003e\u003cpath id=\"_路径_4\" d=\"M265.414 150.43l85.743 49.503-35.938 20.759a27.35 27.35 0 0 1-13.675 3.802 25.818 25.818 0 0 1-13.183-3.556l-72.505-41.873z\" class=\"cls-1\" data-name=\"路径 4\"/\u003e\u003cpath id=\"_路径_5\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556L179.7 157.978z\" class=\"cls-1\" data-name=\"路径 5\"/\u003e\u003cpath id=\"_路径_6\" d=\"M179.644 158.033L8.049 58.97l35.91-20.758a27.35 27.35 0 0 1 13.676-3.802 25.819 25.819 0 0 1 13.183 3.555l158.412 91.46z\" class=\"cls-1\" data-name=\"路径 6\"/\u003e\u003cpath id=\"_路径_7\" fill=\"url(#linear-gradient)\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556l78.769-45.51a19.774 19.774 0 0 0 .793-34.243 1040.537 1040.537 0 0 1-20.321-11.706z\" data-name=\"路径 7\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"0.92 -5.08 357.16 368.16\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"_编组_\" data-name=\"编组\"\u003e\u003cg id=\"_编组_2\" data-name=\"编组 2\"\u003e\u003cpath id=\"_路径_\" d=\"M228.765 30.362L179.644 2l-49.093 28.362 49.093 28.335 49.121-28.335z\" class=\"cls-1\" data-name=\"路径\"/\u003e\u003cpath id=\"_路径_2\" d=\"M152.896 215.413l7.001 129.366 19.747 11.405 19.774-11.405 7.002-129.366-26.776-15.453-26.748 15.453z\" class=\"cls-1\" data-name=\"路径 2\"/\u003e\u003cpath id=\"_路径_3\" d=\"M265.496 108.474L351.24 58.97l-35.91-20.758a27.35 27.35 0 0 0-13.676-3.802 25.819 25.819 0 0 0-13.183 3.555l-72.532 41.9z\" class=\"cls-1\" data-name=\"路径 3\"/\u003e\u003cpath id=\"_路径_4\" d=\"M265.414 150.43l85.743 49.503-35.938 20.759a27.35 27.35 0 0 1-13.675 3.802 25.818 25.818 0 0 1-13.183-3.556l-72.505-41.873z\" class=\"cls-1\" data-name=\"路径 4\"/\u003e\u003cpath id=\"_路径_5\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556L179.7 157.978z\" class=\"cls-1\" data-name=\"路径 5\"/\u003e\u003cpath id=\"_路径_6\" d=\"M179.644 158.033L8.049 58.97l35.91-20.758a27.35 27.35 0 0 1 13.676-3.802 25.819 25.819 0 0 1 13.183 3.555l158.412 91.46z\" class=\"cls-1\" data-name=\"路径 6\"/\u003e\u003cpath id=\"_路径_7\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556l78.769-45.51a19.774 19.774 0 0 0 .793-34.243 1040.537 1040.537 0 0 1-20.321-11.706z\" class=\"cls-1\" data-name=\"路径 7\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/dragonfly/v1.1.7/v1.0.0/model.json b/server/meshmodel/dragonfly/v1.1.7/v1.0.0/model.json new file mode 100644 index 00000000000..d0b21b1c00e --- /dev/null +++ b/server/meshmodel/dragonfly/v1.1.7/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Provisioning" + }, + "displayName": "Dragonfly", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#4aba58", + "secondaryColor": "#8FFF9D", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"0.92 -5.08 357.16 368.16\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"linear-gradient\" x1=\"8.049\" x2=\"223.705\" y1=\"185.068\" y2=\"185.068\" gradientTransform=\"matrix(1 0 0 -1 0 362)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#006934\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#006934\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#4aba58}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"_编组_\" data-name=\"编组\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"_编组_2\" data-name=\"编组 2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_\" d=\"M228.765 30.362L179.644 2l-49.093 28.362 49.093 28.335 49.121-28.335z\" class=\"cls-1\" data-name=\"路径\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_2\" d=\"M152.896 215.413l7.001 129.366 19.747 11.405 19.774-11.405 7.002-129.366-26.776-15.453-26.748 15.453z\" class=\"cls-1\" data-name=\"路径 2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_3\" d=\"M265.496 108.474L351.24 58.97l-35.91-20.758a27.35 27.35 0 0 0-13.676-3.802 25.819 25.819 0 0 0-13.183 3.555l-72.532 41.9z\" class=\"cls-1\" data-name=\"路径 3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_4\" d=\"M265.414 150.43l85.743 49.503-35.938 20.759a27.35 27.35 0 0 1-13.675 3.802 25.818 25.818 0 0 1-13.183-3.556l-72.505-41.873z\" class=\"cls-1\" data-name=\"路径 4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_5\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556L179.7 157.978z\" class=\"cls-1\" data-name=\"路径 5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_6\" d=\"M179.644 158.033L8.049 58.97l35.91-20.758a27.35 27.35 0 0 1 13.676-3.802 25.819 25.819 0 0 1 13.183 3.555l158.412 91.46z\" class=\"cls-1\" data-name=\"路径 6\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_7\" fill=\"url(#linear-gradient)\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556l78.769-45.51a19.774 19.774 0 0 0 .793-34.243 1040.537 1040.537 0 0 1-20.321-11.706z\" data-name=\"路径 7\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"0.92 -5.08 357.16 368.16\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"_编组_\" data-name=\"编组\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"_编组_2\" data-name=\"编组 2\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_\" d=\"M228.765 30.362L179.644 2l-49.093 28.362 49.093 28.335 49.121-28.335z\" class=\"cls-1\" data-name=\"路径\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_2\" d=\"M152.896 215.413l7.001 129.366 19.747 11.405 19.774-11.405 7.002-129.366-26.776-15.453-26.748 15.453z\" class=\"cls-1\" data-name=\"路径 2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_3\" d=\"M265.496 108.474L351.24 58.97l-35.91-20.758a27.35 27.35 0 0 0-13.676-3.802 25.819 25.819 0 0 0-13.183 3.555l-72.532 41.9z\" class=\"cls-1\" data-name=\"路径 3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_4\" d=\"M265.414 150.43l85.743 49.503-35.938 20.759a27.35 27.35 0 0 1-13.675 3.802 25.818 25.818 0 0 1-13.183-3.556l-72.505-41.873z\" class=\"cls-1\" data-name=\"路径 4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_5\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556L179.7 157.978z\" class=\"cls-1\" data-name=\"路径 5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_6\" d=\"M179.644 158.033L8.049 58.97l35.91-20.758a27.35 27.35 0 0 1 13.676-3.802 25.819 25.819 0 0 1 13.183 3.555l158.412 91.46z\" class=\"cls-1\" data-name=\"路径 6\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"_路径_7\" d=\"M130.086 129.424L8.049 199.906l35.938 20.731a27.35 27.35 0 0 0 13.675 3.802 25.818 25.818 0 0 0 13.183-3.556l78.769-45.51a19.774 19.774 0 0 0 .793-34.243 1040.537 1040.537 0 0 1-20.321-11.706z\" class=\"cls-1\" data-name=\"路径 7\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.1.7" + }, + "name": "dragonfly", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Container Registry", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Agent.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Agent.json new file mode 100644 index 00000000000..63239763c44 --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Agent.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Agent", + "schema": "{\n \"description\": \"Agent is the Schema for the Agents API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"AgentSpec defines the desired state of the Agent\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the Agent configuration. At most one of [`Config`, `ConfigRef`] can be specified.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"configRef\": {\n \"description\": \"ConfigRef contains a reference to an existing Kubernetes Secret holding the Agent configuration.\\nAgent settings must be specified as yaml, under a single \\\"agent.yml\\\" entry. At most one of [`Config`, `ConfigRef`]\\ncan be specified.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"daemonSet\": {\n \"description\": \"DaemonSet specifies the Agent should be deployed as a DaemonSet, and allows providing its spec.\\nCannot be used along with `deployment` or `statefulSet`.\",\n \"properties\": {\n \"podTemplate\": {\n \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"updateStrategy\": {\n \"description\": \"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\\n---\\nTODO: Update this to follow our convention for oneOf, whatever we decide it\\nto be. Same as Deployment `strategy.rollingUpdate`.\\nSee https://github.com/kubernetes/kubernetes/issues/35345\",\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of nodes with an existing available DaemonSet pod that\\ncan have an updated DaemonSet pod during during an update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nThis can not be 0 if MaxUnavailable is 0.\\nAbsolute number is calculated from percentage by rounding up to a minimum of 1.\\nDefault value is 0.\\nExample: when this is set to 30%, at most 30% of the total number of nodes\\nthat should be running the daemon pod (i.e. status.desiredNumberScheduled)\\ncan have their a new pod created before the old pod is marked as deleted.\\nThe update starts by launching new pods on 30% of nodes. Once an updated\\npod is available (Ready for at least minReadySeconds) the old DaemonSet pod\\non that node is marked deleted. If the old pod becomes unavailable for any\\nreason (Ready transitions to false, is evicted, or is drained) an updated\\npod is immediatedly created on that node without considering surge limits.\\nAllowing surge implies the possibility that the resources consumed by the\\ndaemonset on any given node can double if the readiness check fails, and\\nso resource intensive daemonsets should take into account that they may\\ncause evictions during disruption.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of DaemonSet pods that can be unavailable during the\\nupdate. Value can be an absolute number (ex: 5) or a percentage of total\\nnumber of DaemonSet pods at the start of the update (ex: 10%). Absolute\\nnumber is calculated from percentage by rounding up.\\nThis cannot be 0 if MaxSurge is 0\\nDefault value is 1.\\nExample: when this is set to 30%, at most 30% of the total number of nodes\\nthat should be running the daemon pod (i.e. status.desiredNumberScheduled)\\ncan have their pods stopped for an update at any given time. The update\\nstarts by stopping at most 30% of those DaemonSet pods and then brings\\nup new DaemonSet pods in their place. Once the new pods are available,\\nit then proceeds onto other DaemonSet pods, thus ensuring that at least\\n70% of original number of DaemonSet pods are available at all times during\\nthe update.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"description\": \"Deployment specifies the Agent should be deployed as a Deployment, and allows providing its spec.\\nCannot be used along with `daemonSet` or `statefulSet`.\",\n \"properties\": {\n \"podTemplate\": {\n \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"strategy\": {\n \"description\": \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"Rolling update config params. Present only if DeploymentStrategyType =\\nRollingUpdate.\\n---\\nTODO: Update this to follow our convention for oneOf, whatever we decide it\\nto be.\",\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be scheduled above the desired number of\\npods.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nThis can not be 0 if MaxUnavailable is 0.\\nAbsolute number is calculated from percentage by rounding up.\\nDefaults to 25%.\\nExample: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\\nthe rolling update starts, such that the total number of old and new pods do not exceed\\n130% of desired pods. Once old pods have been killed,\\nnew ReplicaSet can be scaled up further, ensuring that total number of pods running\\nat any time during the update is at most 130% of desired pods.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding down.\\nThis can not be 0 if MaxSurge is 0.\\nDefaults to 25%.\\nExample: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\\nimmediately when the rolling update starts. Once new pods are ready, old ReplicaSet\\ncan be scaled down further, followed by scaling up the new ReplicaSet, ensuring\\nthat the total number of pods available at all times during the update is at\\nleast 70% of desired pods.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single ES cluster is currently supported.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"outputName\": {\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"fleetServerEnabled\": {\n \"description\": \"FleetServerEnabled determines whether this Agent will launch Fleet Server. Don't set unless `mode` is set to `fleet`.\",\n \"type\": \"boolean\"\n },\n \"fleetServerRef\": {\n \"description\": \"FleetServerRef is a reference to Fleet Server that this Agent should connect to to obtain it's configuration.\\nDon't set unless `mode` is set to `fleet`.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http\": {\n \"description\": \"HTTP holds the HTTP layer configuration for the Agent in Fleet mode with Fleet Server enabled.\",\n \"properties\": {\n \"service\": {\n \"description\": \"Service defines the template for the associated Kubernetes Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the service.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the service.\",\n \"properties\": {\n \"allocateLoadBalancerNodePorts\": {\n \"description\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically\\nallocated for services with type LoadBalancer. Default is \\\"true\\\". It\\nmay be set to \\\"false\\\" if the cluster load-balancer does not rely on\\nNodePorts. If the caller requests specific NodePorts (by specifying a\\nvalue), those requests will be respected, regardless of this field.\\nThis field may only be set for services with type LoadBalancer and will\\nbe cleared if the type is changed to any other type.\",\n \"type\": \"boolean\"\n },\n \"clusterIP\": {\n \"description\": \"clusterIP is the IP address of the service and is usually assigned\\nrandomly. If an address is specified manually, is in-range (as per\\nsystem configuration), and is not in use, it will be allocated to the\\nservice; otherwise creation of the service will fail. This field may not\\nbe changed through updates unless the type field is also being changed\\nto ExternalName (which requires this field to be blank) or the type\\nfield is being changed from ExternalName (in which case this field may\\noptionally be specified, as describe above). Valid values are \\\"None\\\",\\nempty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a\\n\\\"headless service\\\" (no virtual IP), which is useful when direct endpoint\\nconnections are preferred and proxying is not required. Only applies to\\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\\nwhen creating a Service of type ExternalName, creation will fail. This\\nfield will be wiped when updating a Service to type ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"clusterIPs\": {\n \"description\": \"ClusterIPs is a list of IP addresses assigned to this service, and are\\nusually assigned randomly. If an address is specified manually, is\\nin-range (as per system configuration), and is not in use, it will be\\nallocated to the service; otherwise creation of the service will fail.\\nThis field may not be changed through updates unless the type field is\\nalso being changed to ExternalName (which requires this field to be\\nempty) or the type field is being changed from ExternalName (in which\\ncase this field may optionally be specified, as describe above). Valid\\nvalues are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting\\nthis to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is\\nuseful when direct endpoint connections are preferred and proxying is\\nnot required. Only applies to types ClusterIP, NodePort, and\\nLoadBalancer. If this field is specified when creating a Service of type\\nExternalName, creation will fail. This field will be wiped when updating\\na Service to type ExternalName. If this field is not specified, it will\\nbe initialized from the clusterIP field. If this field is specified,\\nclients must ensure that clusterIPs[0] and clusterIP have the same\\nvalue.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\\nThese IPs must correspond to the values of the ipFamilies field. Both\\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalIPs\": {\n \"description\": \"externalIPs is a list of IP addresses for which nodes in the cluster\\nwill also accept traffic for this service. These IPs are not managed by\\nKubernetes. The user is responsible for ensuring that traffic arrives\\nat a node with this IP. A common example is external load-balancers\\nthat are not part of the Kubernetes system.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalName\": {\n \"description\": \"externalName is the external reference that discovery mechanisms will\\nreturn as an alias for this service (e.g. a DNS CNAME record). No\\nproxying will be involved. Must be a lowercase RFC-1123 hostname\\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n \"type\": \"string\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts,\\nExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure\\nthe service in a way that assumes that external load balancers will take care\\nof balancing the service traffic between nodes, and so each node will deliver\\ntraffic only to the node-local endpoints of the service, without masquerading\\nthe client source IP. (Traffic mistakenly sent to a node with no endpoints will\\nbe dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of\\nrouting to all endpoints evenly (possibly modified by topology and other\\nfeatures). Note that traffic sent to an External IP or LoadBalancer IP from\\nwithin the cluster will always get \\\"Cluster\\\" semantics, but clients sending to\\na NodePort from within the cluster may need to take traffic policy into account\\nwhen picking a node.\",\n \"type\": \"string\"\n },\n \"healthCheckNodePort\": {\n \"description\": \"healthCheckNodePort specifies the healthcheck nodePort for the service.\\nThis only applies when type is set to LoadBalancer and\\nexternalTrafficPolicy is set to Local. If a value is specified, is\\nin-range, and is not in use, it will be used. If not specified, a value\\nwill be automatically allocated. External systems (e.g. load-balancers)\\ncan use this port to determine if a given node holds endpoints for this\\nservice or not. If this field is specified when creating a Service\\nwhich does not need it, creation will fail. This field will be wiped\\nwhen updating a Service to no longer need it (e.g. changing type).\\nThis field cannot be updated once set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"internalTrafficPolicy\": {\n \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods\\nonly want to talk to endpoints of the service on the same node as the pod,\\ndropping the traffic if there are no local endpoints. The default value,\\n\\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly\\n(possibly modified by topology and other features).\",\n \"type\": \"string\"\n },\n \"ipFamilies\": {\n \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\\nservice. This field is usually assigned automatically based on cluster\\nconfiguration and the ipFamilyPolicy field. If this field is specified\\nmanually, the requested family is available in the cluster,\\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\\nthe service will fail. This field is conditionally mutable: it allows\\nfor adding or removing a secondary IP family, but it does not allow\\nchanging the primary IP family of the Service. Valid values are \\\"IPv4\\\"\\nand \\\"IPv6\\\". This field only applies to Services of types ClusterIP,\\nNodePort, and LoadBalancer, and does apply to \\\"headless\\\" services.\\nThis field will be wiped when updating a Service to type ExternalName.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack families, in\\neither order). These families must correspond to the values of the\\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\\ngoverned by the ipFamilyPolicy field.\",\n \"items\": {\n \"description\": \"IPFamily represents the IP Family (IPv4 or IPv6). This type is used\\nto express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by\\nthis Service. If there is no value provided, then this field will be set\\nto SingleStack. Services can be \\\"SingleStack\\\" (a single IP family),\\n\\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or\\na single IP family on single-stack clusters), or \\\"RequireDualStack\\\"\\n(two IP families on dual-stack configured clusters, otherwise fail). The\\nipFamilies and clusterIPs fields depend on the value of this field. This\\nfield will be wiped when updating a service to type ExternalName.\",\n \"type\": \"string\"\n },\n \"loadBalancerClass\": {\n \"description\": \"loadBalancerClass is the class of the load balancer implementation this Service belongs to.\\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\\ne.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users.\\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\\nbalancer implementation is used, today this is typically done through the cloud provider integration,\\nbut should apply for any default implementation. If set, it is assumed that a load balancer\\nimplementation is watching for Services with a matching class. Any default load balancer\\nimplementation (e.g. cloud providers) should ignore Services that set this field.\\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n \"type\": \"string\"\n },\n \"loadBalancerIP\": {\n \"description\": \"Only applies to Service Type: LoadBalancer.\\nThis feature depends on whether the underlying cloud-provider supports specifying\\nthe loadBalancerIP when a load balancer is created.\\nThis field will be ignored if the cloud-provider does not support the feature.\\nDeprecated: This field was under-specified and its meaning varies across implementations.\\nUsing it is non-portable and it may not support dual-stack.\\nUsers are encouraged to use implementation-specific annotations when available.\",\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"If specified and supported by the platform, this will restrict traffic through the cloud-provider\\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\\ncloud-provider does not support the feature.\\\"\\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ports\": {\n \"description\": \"The list of ports that are exposed by this service.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"description\": \"ServicePort contains information on service's port.\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port.\\nThis is used as a hint for implementations to offer richer behavior for protocols that they understand.\\nThis field follows standard Kubernetes label syntax.\\nValid values are either:\\n\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per\\nRFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n\\n* Kubernetes-defined prefixed names:\\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n\\n* Other protocols should use implementation-defined prefixed names such as\\nmycompany.com/my-custom-protocol.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL.\\nAll ports within a ServiceSpec must have unique names. When considering\\nthe endpoints for a Service, this must match the 'name' field in the\\nEndpointPort.\\nOptional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"The port on each node on which this service is exposed when type is\\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\\nspecified, in-range, and not in use it will be used, otherwise the\\noperation will fail. If not specified, a port will be allocated if this\\nService requires one. If this field is specified when creating a\\nService which does not need it, creation will fail. This field will be\\nwiped when updating a Service to no longer need it (e.g. changing type\\nfrom NodePort to ClusterIP).\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\".\\nDefault is TCP.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the pods targeted by the service.\\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\\nIf this is a string, it will be looked up as a named port in the\\ntarget Pod's container ports. If this is not specified, the value\\nof the 'port' field is used (an identity map).\\nThis field is ignored for services with clusterIP=None, and should be\\nomitted or set equal to the 'port' field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"port\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this\\nService should disregard any indications of ready/not-ready.\\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\\nServices interpret this to mean that all endpoints are considered \\\"ready\\\" even if the\\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n \"type\": \"boolean\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Route service traffic to pods with label keys and values matching this\\nselector. If empty or not present, the service is assumed to have an\\nexternal process managing its endpoints, which Kubernetes will not\\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\\nIgnored if type is ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity.\\nEnable client IP based session affinity.\\nMust be ClientIP or None.\\nDefaults to None.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time.\\nThe value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\".\\nDefault value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficDistribution\": {\n \"description\": \"TrafficDistribution offers a way to express preferences for how traffic is\\ndistributed to Service endpoints. Implementations can use this field as a\\nhint, but are not required to guarantee strict adherence. If the field is\\nnot set, the implementation will apply its default routing strategy. If set\\nto \\\"PreferClose\\\", implementations should prioritize endpoints that are\\ntopologically close (e.g., same zone).\\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type determines how the Service is exposed. Defaults to ClusterIP. Valid\\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\\n\\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing\\nto endpoints. Endpoints are determined by the selector or if that is not\\nspecified, by manual construction of an Endpoints object or\\nEndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is\\nallocated and the endpoints are published as a set of endpoints rather\\nthan a virtual IP.\\n\\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which\\nroutes to the same endpoints as the clusterIP.\\n\\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer\\n(if supported in the current cloud) which routes to the same endpoints\\nas the clusterIP.\\n\\\"ExternalName\\\" aliases this service to the specified externalName.\\nSeveral other fields do not apply to ExternalName services.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS defines options for configuring TLS for HTTP.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.\\nThe referenced secret should contain the following:\\n\\n\\n- `ca.crt`: The certificate authority (optional).\\n- `tls.crt`: The certificate (or a chain).\\n- `tls.key`: The private key to the first certificate in the certificate chain.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selfSignedCertificate\": {\n \"description\": \"SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled indicates that the provisioning of the self-signed certifcate should be disabled.\",\n \"type\": \"boolean\"\n },\n \"subjectAltNames\": {\n \"description\": \"SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.\",\n \"items\": {\n \"description\": \"SubjectAlternativeName represents a SAN entry in a x509 certificate.\",\n \"properties\": {\n \"dns\": {\n \"description\": \"DNS is the DNS name of the subject.\",\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP is the IP address of the subject.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the Agent Docker image to deploy. Version has to match the Agent in the image.\",\n \"type\": \"string\"\n },\n \"kibanaRef\": {\n \"description\": \"KibanaRef is a reference to Kibana where Fleet should be set up and this Agent should be enrolled. Don't set\\nunless `mode` is set to `fleet`.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Mode specifies the source of configuration for the Agent. The configuration can be specified locally through\\n`config` or `configRef` (`standalone` mode), or come from Fleet during runtime (`fleet` mode).\\nDefaults to `standalone` mode.\",\n \"enum\": [\n \"standalone\",\n \"fleet\"\n ],\n \"type\": \"string\"\n },\n \"policyID\": {\n \"description\": \"PolicyID determines into which Agent Policy this Agent will be enrolled.\\nThis field will become mandatory in a future release, default policies are deprecated since 8.1.0.\",\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying DaemonSet or Deployment or StatefulSet.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"secureSettings\": {\n \"description\": \"SecureSettings is a list of references to Kubernetes Secrets containing sensitive configuration options for the Agent.\\nSecrets data can be then referenced in the Agent config using the Secret's keys or as specified in `Entries` field of\\neach SecureSetting.\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is used to check access from the current resource to an Elasticsearch resource in a different namespace.\\nCan only be used if ECK is enforcing RBAC on references.\",\n \"type\": \"string\"\n },\n \"statefulSet\": {\n \"description\": \"StatefulSet specifies the Agent should be deployed as a StatefulSet, and allows providing its spec.\\nCannot be used along with `daemonSet` or `deployment`.\",\n \"properties\": {\n \"podManagementPolicy\": {\n \"default\": \"Parallel\",\n \"description\": \"PodManagementPolicy controls how pods are created during initial scale up,\\nwhen replacing pods on nodes, or when scaling down. The default policy is\\n`Parallel`, where pods are created in parallel to match the desired scale\\nwithout waiting, and on scale down will delete all pods at once.\\nThe alternative policy is `OrderedReady`, the default for vanilla kubernetes\\nStatefulSets, where pods are created in increasing order in increasing order\\n(pod-0, then pod-1, etc.) and the controller will wait until each pod is ready before\\ncontinuing. When scaling down, the pods are removed in the opposite order.\",\n \"enum\": [\n \"OrderedReady\",\n \"Parallel\"\n ],\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"serviceName\": {\n \"type\": \"string\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"VolumeClaimTemplates is a list of persistent volume claims to be used by each Pod.\\nEvery claim in this list must have a matching volumeMount in one of the containers defined in the PodTemplate.\\nItems defined here take precedence over any default claims added by the operator with the same name.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object.\\nServers should convert recognized schemas to the latest internal value, and\\nmay reject unrecognized values.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents.\\nServers may infer this from the endpoint the client submits requests to.\\nCannot be updated.\\nIn CamelCase.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"spec defines the desired characteristics of a volume requested by a pod author.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"status represents the current information/status of a persistent volume claim.\\nRead-only.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the actual access modes the volume backing the PVC has.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"allocatedResourceStatuses\": {\n \"additionalProperties\": {\n \"description\": \"When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource\\nthat it does not recognizes, then it should ignore that update and let other controllers\\nhandle it.\",\n \"type\": \"string\"\n },\n \"description\": \"allocatedResourceStatuses stores status of resource being resized for the given PVC.\\nKey names follow standard Kubernetes label syntax. Valid values are either:\\n\\t* Un-prefixed keys:\\n\\t\\t- storage - the capacity of the volume.\\n\\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\"\\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\\nreserved and hence may not be used.\\n\\n\\nClaimResourceStatus can be in any of following states:\\n\\t- ControllerResizeInProgress:\\n\\t\\tState set when resize controller starts resizing the volume in control-plane.\\n\\t- ControllerResizeFailed:\\n\\t\\tState set when resize has failed in resize controller with a terminal error.\\n\\t- NodeResizePending:\\n\\t\\tState set when resize controller has finished resizing the volume but further resizing of\\n\\t\\tvolume is needed on the node.\\n\\t- NodeResizeInProgress:\\n\\t\\tState set when kubelet starts resizing the volume.\\n\\t- NodeResizeFailed:\\n\\t\\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\\n\\t\\tNodeResizeFailed.\\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\\n\\t- pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeInProgress\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeFailed\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizePending\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeInProgress\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeFailed\\\"\\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\\n\\n\\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\\nshould ignore the update for the purpose it was designed. For example - a controller that\\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\\nresources associated with PVC.\\n\\n\\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"granular\"\n },\n \"allocatedResources\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"allocatedResources tracks the resources allocated to a PVC including its capacity.\\nKey names follow standard Kubernetes label syntax. Valid values are either:\\n\\t* Un-prefixed keys:\\n\\t\\t- storage - the capacity of the volume.\\n\\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\"\\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\\nreserved and hence may not be used.\\n\\n\\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\\nis requested.\\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\\nIf a volume expansion capacity request is lowered, allocatedResources is only\\nlowered if there are no expansion operations in progress and if the actual volume capacity\\nis equal or lower than the requested capacity.\\n\\n\\nA controller that receives PVC update with previously unknown resourceName\\nshould ignore the update for the purpose it was designed. For example - a controller that\\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\\nresources associated with PVC.\\n\\n\\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"capacity represents the actual resources of the underlying volume.\",\n \"type\": \"object\"\n },\n \"conditions\": {\n \"description\": \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being\\nresized then the Condition will be set to 'Resizing'.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaimCondition contains details about state of pvc\",\n \"properties\": {\n \"lastProbeTime\": {\n \"description\": \"lastProbeTime is the time we probed the condition.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"lastTransitionTime\": {\n \"description\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"message is the human-readable message indicating details about last transition.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"reason is a unique, this should be a short, machine understandable string that gives the reason\\nfor condition's last transition. If it reports \\\"Resizing\\\" that means the underlying\\npersistent volume is being resized.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"type\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"currentVolumeAttributesClassName\": {\n \"description\": \"currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.\\nWhen unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim\\nThis is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"type\": \"string\"\n },\n \"modifyVolumeStatus\": {\n \"description\": \"ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.\\nWhen this is unset, there is no ModifyVolume operation being attempted.\\nThis is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"properties\": {\n \"status\": {\n \"description\": \"status is the status of the ControllerModifyVolume operation. It can be in any of following states:\\n - Pending\\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\\n the specified VolumeAttributesClass not existing.\\n - InProgress\\n InProgress indicates that the volume is being modified.\\n - Infeasible\\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\\n\\t resolve the error, a valid VolumeAttributesClass needs to be specified.\\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\",\n \"type\": \"string\"\n },\n \"targetVolumeAttributesClassName\": {\n \"description\": \"targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"type\": \"object\"\n },\n \"phase\": {\n \"description\": \"phase represents the current phase of PersistentVolumeClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"Version of the Agent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Agent\",\n \"type\": \"object\"\n}", + "version": "agent.k8s.elastic.co/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Agent", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ApmServer.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ApmServer.json new file mode 100644 index 00000000000..050b5e8ef9b --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ApmServer.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "ApmServer", + "schema": "{\n \"description\": \"ApmServer represents an APM Server resource in a Kubernetes cluster.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ApmServerSpec holds the specification of an APM Server.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the APM Server configuration. See: https://www.elastic.co/guide/en/apm/server/current/configuring-howto-apm-server.html\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"count\": {\n \"description\": \"Count of APM Server instances to deploy.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"elasticsearchRef\": {\n \"description\": \"ElasticsearchRef is a reference to the output Elasticsearch cluster running in the same Kubernetes cluster.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http\": {\n \"description\": \"HTTP holds the HTTP layer configuration for the APM Server resource.\",\n \"properties\": {\n \"service\": {\n \"description\": \"Service defines the template for the associated Kubernetes Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the service.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the service.\",\n \"properties\": {\n \"allocateLoadBalancerNodePorts\": {\n \"description\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically\\nallocated for services with type LoadBalancer. Default is \\\"true\\\". It\\nmay be set to \\\"false\\\" if the cluster load-balancer does not rely on\\nNodePorts. If the caller requests specific NodePorts (by specifying a\\nvalue), those requests will be respected, regardless of this field.\\nThis field may only be set for services with type LoadBalancer and will\\nbe cleared if the type is changed to any other type.\",\n \"type\": \"boolean\"\n },\n \"clusterIP\": {\n \"description\": \"clusterIP is the IP address of the service and is usually assigned\\nrandomly. If an address is specified manually, is in-range (as per\\nsystem configuration), and is not in use, it will be allocated to the\\nservice; otherwise creation of the service will fail. This field may not\\nbe changed through updates unless the type field is also being changed\\nto ExternalName (which requires this field to be blank) or the type\\nfield is being changed from ExternalName (in which case this field may\\noptionally be specified, as describe above). Valid values are \\\"None\\\",\\nempty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a\\n\\\"headless service\\\" (no virtual IP), which is useful when direct endpoint\\nconnections are preferred and proxying is not required. Only applies to\\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\\nwhen creating a Service of type ExternalName, creation will fail. This\\nfield will be wiped when updating a Service to type ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"clusterIPs\": {\n \"description\": \"ClusterIPs is a list of IP addresses assigned to this service, and are\\nusually assigned randomly. If an address is specified manually, is\\nin-range (as per system configuration), and is not in use, it will be\\nallocated to the service; otherwise creation of the service will fail.\\nThis field may not be changed through updates unless the type field is\\nalso being changed to ExternalName (which requires this field to be\\nempty) or the type field is being changed from ExternalName (in which\\ncase this field may optionally be specified, as describe above). Valid\\nvalues are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting\\nthis to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is\\nuseful when direct endpoint connections are preferred and proxying is\\nnot required. Only applies to types ClusterIP, NodePort, and\\nLoadBalancer. If this field is specified when creating a Service of type\\nExternalName, creation will fail. This field will be wiped when updating\\na Service to type ExternalName. If this field is not specified, it will\\nbe initialized from the clusterIP field. If this field is specified,\\nclients must ensure that clusterIPs[0] and clusterIP have the same\\nvalue.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\\nThese IPs must correspond to the values of the ipFamilies field. Both\\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalIPs\": {\n \"description\": \"externalIPs is a list of IP addresses for which nodes in the cluster\\nwill also accept traffic for this service. These IPs are not managed by\\nKubernetes. The user is responsible for ensuring that traffic arrives\\nat a node with this IP. A common example is external load-balancers\\nthat are not part of the Kubernetes system.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalName\": {\n \"description\": \"externalName is the external reference that discovery mechanisms will\\nreturn as an alias for this service (e.g. a DNS CNAME record). No\\nproxying will be involved. Must be a lowercase RFC-1123 hostname\\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n \"type\": \"string\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts,\\nExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure\\nthe service in a way that assumes that external load balancers will take care\\nof balancing the service traffic between nodes, and so each node will deliver\\ntraffic only to the node-local endpoints of the service, without masquerading\\nthe client source IP. (Traffic mistakenly sent to a node with no endpoints will\\nbe dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of\\nrouting to all endpoints evenly (possibly modified by topology and other\\nfeatures). Note that traffic sent to an External IP or LoadBalancer IP from\\nwithin the cluster will always get \\\"Cluster\\\" semantics, but clients sending to\\na NodePort from within the cluster may need to take traffic policy into account\\nwhen picking a node.\",\n \"type\": \"string\"\n },\n \"healthCheckNodePort\": {\n \"description\": \"healthCheckNodePort specifies the healthcheck nodePort for the service.\\nThis only applies when type is set to LoadBalancer and\\nexternalTrafficPolicy is set to Local. If a value is specified, is\\nin-range, and is not in use, it will be used. If not specified, a value\\nwill be automatically allocated. External systems (e.g. load-balancers)\\ncan use this port to determine if a given node holds endpoints for this\\nservice or not. If this field is specified when creating a Service\\nwhich does not need it, creation will fail. This field will be wiped\\nwhen updating a Service to no longer need it (e.g. changing type).\\nThis field cannot be updated once set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"internalTrafficPolicy\": {\n \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods\\nonly want to talk to endpoints of the service on the same node as the pod,\\ndropping the traffic if there are no local endpoints. The default value,\\n\\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly\\n(possibly modified by topology and other features).\",\n \"type\": \"string\"\n },\n \"ipFamilies\": {\n \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\\nservice. This field is usually assigned automatically based on cluster\\nconfiguration and the ipFamilyPolicy field. If this field is specified\\nmanually, the requested family is available in the cluster,\\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\\nthe service will fail. This field is conditionally mutable: it allows\\nfor adding or removing a secondary IP family, but it does not allow\\nchanging the primary IP family of the Service. Valid values are \\\"IPv4\\\"\\nand \\\"IPv6\\\". This field only applies to Services of types ClusterIP,\\nNodePort, and LoadBalancer, and does apply to \\\"headless\\\" services.\\nThis field will be wiped when updating a Service to type ExternalName.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack families, in\\neither order). These families must correspond to the values of the\\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\\ngoverned by the ipFamilyPolicy field.\",\n \"items\": {\n \"description\": \"IPFamily represents the IP Family (IPv4 or IPv6). This type is used\\nto express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by\\nthis Service. If there is no value provided, then this field will be set\\nto SingleStack. Services can be \\\"SingleStack\\\" (a single IP family),\\n\\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or\\na single IP family on single-stack clusters), or \\\"RequireDualStack\\\"\\n(two IP families on dual-stack configured clusters, otherwise fail). The\\nipFamilies and clusterIPs fields depend on the value of this field. This\\nfield will be wiped when updating a service to type ExternalName.\",\n \"type\": \"string\"\n },\n \"loadBalancerClass\": {\n \"description\": \"loadBalancerClass is the class of the load balancer implementation this Service belongs to.\\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\\ne.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users.\\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\\nbalancer implementation is used, today this is typically done through the cloud provider integration,\\nbut should apply for any default implementation. If set, it is assumed that a load balancer\\nimplementation is watching for Services with a matching class. Any default load balancer\\nimplementation (e.g. cloud providers) should ignore Services that set this field.\\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n \"type\": \"string\"\n },\n \"loadBalancerIP\": {\n \"description\": \"Only applies to Service Type: LoadBalancer.\\nThis feature depends on whether the underlying cloud-provider supports specifying\\nthe loadBalancerIP when a load balancer is created.\\nThis field will be ignored if the cloud-provider does not support the feature.\\nDeprecated: This field was under-specified and its meaning varies across implementations.\\nUsing it is non-portable and it may not support dual-stack.\\nUsers are encouraged to use implementation-specific annotations when available.\",\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"If specified and supported by the platform, this will restrict traffic through the cloud-provider\\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\\ncloud-provider does not support the feature.\\\"\\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ports\": {\n \"description\": \"The list of ports that are exposed by this service.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"description\": \"ServicePort contains information on service's port.\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port.\\nThis is used as a hint for implementations to offer richer behavior for protocols that they understand.\\nThis field follows standard Kubernetes label syntax.\\nValid values are either:\\n\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per\\nRFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n\\n* Kubernetes-defined prefixed names:\\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n\\n* Other protocols should use implementation-defined prefixed names such as\\nmycompany.com/my-custom-protocol.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL.\\nAll ports within a ServiceSpec must have unique names. When considering\\nthe endpoints for a Service, this must match the 'name' field in the\\nEndpointPort.\\nOptional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"The port on each node on which this service is exposed when type is\\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\\nspecified, in-range, and not in use it will be used, otherwise the\\noperation will fail. If not specified, a port will be allocated if this\\nService requires one. If this field is specified when creating a\\nService which does not need it, creation will fail. This field will be\\nwiped when updating a Service to no longer need it (e.g. changing type\\nfrom NodePort to ClusterIP).\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\".\\nDefault is TCP.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the pods targeted by the service.\\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\\nIf this is a string, it will be looked up as a named port in the\\ntarget Pod's container ports. If this is not specified, the value\\nof the 'port' field is used (an identity map).\\nThis field is ignored for services with clusterIP=None, and should be\\nomitted or set equal to the 'port' field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"port\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this\\nService should disregard any indications of ready/not-ready.\\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\\nServices interpret this to mean that all endpoints are considered \\\"ready\\\" even if the\\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n \"type\": \"boolean\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Route service traffic to pods with label keys and values matching this\\nselector. If empty or not present, the service is assumed to have an\\nexternal process managing its endpoints, which Kubernetes will not\\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\\nIgnored if type is ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity.\\nEnable client IP based session affinity.\\nMust be ClientIP or None.\\nDefaults to None.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time.\\nThe value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\".\\nDefault value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficDistribution\": {\n \"description\": \"TrafficDistribution offers a way to express preferences for how traffic is\\ndistributed to Service endpoints. Implementations can use this field as a\\nhint, but are not required to guarantee strict adherence. If the field is\\nnot set, the implementation will apply its default routing strategy. If set\\nto \\\"PreferClose\\\", implementations should prioritize endpoints that are\\ntopologically close (e.g., same zone).\\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type determines how the Service is exposed. Defaults to ClusterIP. Valid\\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\\n\\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing\\nto endpoints. Endpoints are determined by the selector or if that is not\\nspecified, by manual construction of an Endpoints object or\\nEndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is\\nallocated and the endpoints are published as a set of endpoints rather\\nthan a virtual IP.\\n\\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which\\nroutes to the same endpoints as the clusterIP.\\n\\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer\\n(if supported in the current cloud) which routes to the same endpoints\\nas the clusterIP.\\n\\\"ExternalName\\\" aliases this service to the specified externalName.\\nSeveral other fields do not apply to ExternalName services.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS defines options for configuring TLS for HTTP.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.\\nThe referenced secret should contain the following:\\n\\n\\n- `ca.crt`: The certificate authority (optional).\\n- `tls.crt`: The certificate (or a chain).\\n- `tls.key`: The private key to the first certificate in the certificate chain.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selfSignedCertificate\": {\n \"description\": \"SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled indicates that the provisioning of the self-signed certifcate should be disabled.\",\n \"type\": \"boolean\"\n },\n \"subjectAltNames\": {\n \"description\": \"SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.\",\n \"items\": {\n \"description\": \"SubjectAlternativeName represents a SAN entry in a x509 certificate.\",\n \"properties\": {\n \"dns\": {\n \"description\": \"DNS is the DNS name of the subject.\",\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP is the IP address of the subject.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the APM Server Docker image to deploy.\",\n \"type\": \"string\"\n },\n \"kibanaRef\": {\n \"description\": \"KibanaRef is a reference to a Kibana instance running in the same Kubernetes cluster.\\nIt allows APM agent central configuration management in Kibana.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"podTemplate\": {\n \"description\": \"PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the APM Server pods.\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying Deployment.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"secureSettings\": {\n \"description\": \"SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for APM Server.\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.\\nCan only be used if ECK is enforcing RBAC on references.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of the APM Server.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Apm Server\",\n \"type\": \"object\"\n}", + "version": "apm.k8s.elastic.co/v1" + }, + "configuration": null, + "description": "", + "displayName": "Apm Server", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Beat.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Beat.json new file mode 100644 index 00000000000..665bbb590e7 --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Beat.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Beat", + "schema": "{\n \"description\": \"Beat is the Schema for the Beats API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"BeatSpec defines the desired state of a Beat.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the Beat configuration. At most one of [`Config`, `ConfigRef`] can be specified.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"configRef\": {\n \"description\": \"ConfigRef contains a reference to an existing Kubernetes Secret holding the Beat configuration.\\nBeat settings must be specified as yaml, under a single \\\"beat.yml\\\" entry. At most one of [`Config`, `ConfigRef`]\\ncan be specified.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"daemonSet\": {\n \"description\": \"DaemonSet specifies the Beat should be deployed as a DaemonSet, and allows providing its spec.\\nCannot be used along with `deployment`. If both are absent a default for the Type is used.\",\n \"properties\": {\n \"podTemplate\": {\n \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"updateStrategy\": {\n \"description\": \"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\\n---\\nTODO: Update this to follow our convention for oneOf, whatever we decide it\\nto be. Same as Deployment `strategy.rollingUpdate`.\\nSee https://github.com/kubernetes/kubernetes/issues/35345\",\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of nodes with an existing available DaemonSet pod that\\ncan have an updated DaemonSet pod during during an update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nThis can not be 0 if MaxUnavailable is 0.\\nAbsolute number is calculated from percentage by rounding up to a minimum of 1.\\nDefault value is 0.\\nExample: when this is set to 30%, at most 30% of the total number of nodes\\nthat should be running the daemon pod (i.e. status.desiredNumberScheduled)\\ncan have their a new pod created before the old pod is marked as deleted.\\nThe update starts by launching new pods on 30% of nodes. Once an updated\\npod is available (Ready for at least minReadySeconds) the old DaemonSet pod\\non that node is marked deleted. If the old pod becomes unavailable for any\\nreason (Ready transitions to false, is evicted, or is drained) an updated\\npod is immediatedly created on that node without considering surge limits.\\nAllowing surge implies the possibility that the resources consumed by the\\ndaemonset on any given node can double if the readiness check fails, and\\nso resource intensive daemonsets should take into account that they may\\ncause evictions during disruption.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of DaemonSet pods that can be unavailable during the\\nupdate. Value can be an absolute number (ex: 5) or a percentage of total\\nnumber of DaemonSet pods at the start of the update (ex: 10%). Absolute\\nnumber is calculated from percentage by rounding up.\\nThis cannot be 0 if MaxSurge is 0\\nDefault value is 1.\\nExample: when this is set to 30%, at most 30% of the total number of nodes\\nthat should be running the daemon pod (i.e. status.desiredNumberScheduled)\\ncan have their pods stopped for an update at any given time. The update\\nstarts by stopping at most 30% of those DaemonSet pods and then brings\\nup new DaemonSet pods in their place. Once the new pods are available,\\nit then proceeds onto other DaemonSet pods, thus ensuring that at least\\n70% of original number of DaemonSet pods are available at all times during\\nthe update.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"description\": \"Deployment specifies the Beat should be deployed as a Deployment, and allows providing its spec.\\nCannot be used along with `daemonSet`. If both are absent a default for the Type is used.\",\n \"properties\": {\n \"podTemplate\": {\n \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"strategy\": {\n \"description\": \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"Rolling update config params. Present only if DeploymentStrategyType =\\nRollingUpdate.\\n---\\nTODO: Update this to follow our convention for oneOf, whatever we decide it\\nto be.\",\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be scheduled above the desired number of\\npods.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nThis can not be 0 if MaxUnavailable is 0.\\nAbsolute number is calculated from percentage by rounding up.\\nDefaults to 25%.\\nExample: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\\nthe rolling update starts, such that the total number of old and new pods do not exceed\\n130% of desired pods. Once old pods have been killed,\\nnew ReplicaSet can be scaled up further, ensuring that total number of pods running\\nat any time during the update is at most 130% of desired pods.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding down.\\nThis can not be 0 if MaxSurge is 0.\\nDefaults to 25%.\\nExample: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\\nimmediately when the rolling update starts. Once new pods are ready, old ReplicaSet\\ncan be scaled down further, followed by scaling up the new ReplicaSet, ensuring\\nthat the total number of pods available at all times during the update is at\\nleast 70% of desired pods.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"elasticsearchRef\": {\n \"description\": \"ElasticsearchRef is a reference to an Elasticsearch cluster running in the same Kubernetes cluster.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the Beat Docker image to deploy. Version and Type have to match the Beat in the image.\",\n \"type\": \"string\"\n },\n \"kibanaRef\": {\n \"description\": \"KibanaRef is a reference to a Kibana instance running in the same Kubernetes cluster.\\nIt allows automatic setup of dashboards and visualizations.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"monitoring\": {\n \"description\": \"Monitoring enables you to collect and ship logs and metrics for this Beat.\\nMetricbeat and/or Filebeat sidecars are configured and send monitoring data to an\\nElasticsearch monitoring cluster running in the same Kubernetes cluster.\",\n \"properties\": {\n \"logs\": {\n \"description\": \"Logs holds references to Elasticsearch clusters which receive log data from an associated resource.\",\n \"properties\": {\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single Elasticsearch cluster is currently supported.\",\n \"items\": {\n \"description\": \"ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator\\nor a Secret describing an external Elastic resource not managed by the operator.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"metrics\": {\n \"description\": \"Metrics holds references to Elasticsearch clusters which receive monitoring data from this resource.\",\n \"properties\": {\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single Elasticsearch cluster is currently supported.\",\n \"items\": {\n \"description\": \"ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator\\nor a Secret describing an external Elastic resource not managed by the operator.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying DaemonSet or Deployment.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"secureSettings\": {\n \"description\": \"SecureSettings is a list of references to Kubernetes Secrets containing sensitive configuration options for the Beat.\\nSecrets data can be then referenced in the Beat config using the Secret's keys or as specified in `Entries` field of\\neach SecureSetting.\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is used to check access from the current resource to Elasticsearch resource in a different namespace.\\nCan only be used if ECK is enforcing RBAC on references.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the Beat to deploy (filebeat, metricbeat, heartbeat, auditbeat, journalbeat, packetbeat, and so on).\\nAny string can be used, but well-known types will have the image field defaulted and have the appropriate\\nElasticsearch roles created automatically. It also allows for dashboard setup when combined with a `KibanaRef`.\",\n \"maxLength\": 20,\n \"pattern\": \"[a-zA-Z0-9-]+\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of the Beat.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Beat\",\n \"type\": \"object\"\n}", + "version": "beat.k8s.elastic.co/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Beat", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ElasticMapsServer.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ElasticMapsServer.json new file mode 100644 index 00000000000..b1113a3d47d --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ElasticMapsServer.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ElasticMapsServer", + "schema": "{\n \"description\": \"ElasticMapsServer represents an Elastic Map Server resource in a Kubernetes cluster.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"MapsSpec holds the specification of an Elastic Maps Server instance.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the ElasticMapsServer configuration. See: https://www.elastic.co/guide/en/kibana/current/maps-connect-to-ems.html#elastic-maps-server-configuration\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"configRef\": {\n \"description\": \"ConfigRef contains a reference to an existing Kubernetes Secret holding the Elastic Maps Server configuration.\\nConfiguration settings are merged and have precedence over settings specified in `config`.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"count\": {\n \"description\": \"Count of Elastic Maps Server instances to deploy.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"elasticsearchRef\": {\n \"description\": \"ElasticsearchRef is a reference to an Elasticsearch cluster running in the same Kubernetes cluster.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http\": {\n \"description\": \"HTTP holds the HTTP layer configuration for Elastic Maps Server.\",\n \"properties\": {\n \"service\": {\n \"description\": \"Service defines the template for the associated Kubernetes Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the service.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the service.\",\n \"properties\": {\n \"allocateLoadBalancerNodePorts\": {\n \"description\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically\\nallocated for services with type LoadBalancer. Default is \\\"true\\\". It\\nmay be set to \\\"false\\\" if the cluster load-balancer does not rely on\\nNodePorts. If the caller requests specific NodePorts (by specifying a\\nvalue), those requests will be respected, regardless of this field.\\nThis field may only be set for services with type LoadBalancer and will\\nbe cleared if the type is changed to any other type.\",\n \"type\": \"boolean\"\n },\n \"clusterIP\": {\n \"description\": \"clusterIP is the IP address of the service and is usually assigned\\nrandomly. If an address is specified manually, is in-range (as per\\nsystem configuration), and is not in use, it will be allocated to the\\nservice; otherwise creation of the service will fail. This field may not\\nbe changed through updates unless the type field is also being changed\\nto ExternalName (which requires this field to be blank) or the type\\nfield is being changed from ExternalName (in which case this field may\\noptionally be specified, as describe above). Valid values are \\\"None\\\",\\nempty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a\\n\\\"headless service\\\" (no virtual IP), which is useful when direct endpoint\\nconnections are preferred and proxying is not required. Only applies to\\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\\nwhen creating a Service of type ExternalName, creation will fail. This\\nfield will be wiped when updating a Service to type ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"clusterIPs\": {\n \"description\": \"ClusterIPs is a list of IP addresses assigned to this service, and are\\nusually assigned randomly. If an address is specified manually, is\\nin-range (as per system configuration), and is not in use, it will be\\nallocated to the service; otherwise creation of the service will fail.\\nThis field may not be changed through updates unless the type field is\\nalso being changed to ExternalName (which requires this field to be\\nempty) or the type field is being changed from ExternalName (in which\\ncase this field may optionally be specified, as describe above). Valid\\nvalues are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting\\nthis to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is\\nuseful when direct endpoint connections are preferred and proxying is\\nnot required. Only applies to types ClusterIP, NodePort, and\\nLoadBalancer. If this field is specified when creating a Service of type\\nExternalName, creation will fail. This field will be wiped when updating\\na Service to type ExternalName. If this field is not specified, it will\\nbe initialized from the clusterIP field. If this field is specified,\\nclients must ensure that clusterIPs[0] and clusterIP have the same\\nvalue.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\\nThese IPs must correspond to the values of the ipFamilies field. Both\\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalIPs\": {\n \"description\": \"externalIPs is a list of IP addresses for which nodes in the cluster\\nwill also accept traffic for this service. These IPs are not managed by\\nKubernetes. The user is responsible for ensuring that traffic arrives\\nat a node with this IP. A common example is external load-balancers\\nthat are not part of the Kubernetes system.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalName\": {\n \"description\": \"externalName is the external reference that discovery mechanisms will\\nreturn as an alias for this service (e.g. a DNS CNAME record). No\\nproxying will be involved. Must be a lowercase RFC-1123 hostname\\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n \"type\": \"string\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts,\\nExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure\\nthe service in a way that assumes that external load balancers will take care\\nof balancing the service traffic between nodes, and so each node will deliver\\ntraffic only to the node-local endpoints of the service, without masquerading\\nthe client source IP. (Traffic mistakenly sent to a node with no endpoints will\\nbe dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of\\nrouting to all endpoints evenly (possibly modified by topology and other\\nfeatures). Note that traffic sent to an External IP or LoadBalancer IP from\\nwithin the cluster will always get \\\"Cluster\\\" semantics, but clients sending to\\na NodePort from within the cluster may need to take traffic policy into account\\nwhen picking a node.\",\n \"type\": \"string\"\n },\n \"healthCheckNodePort\": {\n \"description\": \"healthCheckNodePort specifies the healthcheck nodePort for the service.\\nThis only applies when type is set to LoadBalancer and\\nexternalTrafficPolicy is set to Local. If a value is specified, is\\nin-range, and is not in use, it will be used. If not specified, a value\\nwill be automatically allocated. External systems (e.g. load-balancers)\\ncan use this port to determine if a given node holds endpoints for this\\nservice or not. If this field is specified when creating a Service\\nwhich does not need it, creation will fail. This field will be wiped\\nwhen updating a Service to no longer need it (e.g. changing type).\\nThis field cannot be updated once set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"internalTrafficPolicy\": {\n \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods\\nonly want to talk to endpoints of the service on the same node as the pod,\\ndropping the traffic if there are no local endpoints. The default value,\\n\\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly\\n(possibly modified by topology and other features).\",\n \"type\": \"string\"\n },\n \"ipFamilies\": {\n \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\\nservice. This field is usually assigned automatically based on cluster\\nconfiguration and the ipFamilyPolicy field. If this field is specified\\nmanually, the requested family is available in the cluster,\\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\\nthe service will fail. This field is conditionally mutable: it allows\\nfor adding or removing a secondary IP family, but it does not allow\\nchanging the primary IP family of the Service. Valid values are \\\"IPv4\\\"\\nand \\\"IPv6\\\". This field only applies to Services of types ClusterIP,\\nNodePort, and LoadBalancer, and does apply to \\\"headless\\\" services.\\nThis field will be wiped when updating a Service to type ExternalName.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack families, in\\neither order). These families must correspond to the values of the\\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\\ngoverned by the ipFamilyPolicy field.\",\n \"items\": {\n \"description\": \"IPFamily represents the IP Family (IPv4 or IPv6). This type is used\\nto express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by\\nthis Service. If there is no value provided, then this field will be set\\nto SingleStack. Services can be \\\"SingleStack\\\" (a single IP family),\\n\\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or\\na single IP family on single-stack clusters), or \\\"RequireDualStack\\\"\\n(two IP families on dual-stack configured clusters, otherwise fail). The\\nipFamilies and clusterIPs fields depend on the value of this field. This\\nfield will be wiped when updating a service to type ExternalName.\",\n \"type\": \"string\"\n },\n \"loadBalancerClass\": {\n \"description\": \"loadBalancerClass is the class of the load balancer implementation this Service belongs to.\\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\\ne.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users.\\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\\nbalancer implementation is used, today this is typically done through the cloud provider integration,\\nbut should apply for any default implementation. If set, it is assumed that a load balancer\\nimplementation is watching for Services with a matching class. Any default load balancer\\nimplementation (e.g. cloud providers) should ignore Services that set this field.\\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n \"type\": \"string\"\n },\n \"loadBalancerIP\": {\n \"description\": \"Only applies to Service Type: LoadBalancer.\\nThis feature depends on whether the underlying cloud-provider supports specifying\\nthe loadBalancerIP when a load balancer is created.\\nThis field will be ignored if the cloud-provider does not support the feature.\\nDeprecated: This field was under-specified and its meaning varies across implementations.\\nUsing it is non-portable and it may not support dual-stack.\\nUsers are encouraged to use implementation-specific annotations when available.\",\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"If specified and supported by the platform, this will restrict traffic through the cloud-provider\\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\\ncloud-provider does not support the feature.\\\"\\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ports\": {\n \"description\": \"The list of ports that are exposed by this service.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"description\": \"ServicePort contains information on service's port.\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port.\\nThis is used as a hint for implementations to offer richer behavior for protocols that they understand.\\nThis field follows standard Kubernetes label syntax.\\nValid values are either:\\n\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per\\nRFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n\\n* Kubernetes-defined prefixed names:\\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n\\n* Other protocols should use implementation-defined prefixed names such as\\nmycompany.com/my-custom-protocol.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL.\\nAll ports within a ServiceSpec must have unique names. When considering\\nthe endpoints for a Service, this must match the 'name' field in the\\nEndpointPort.\\nOptional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"The port on each node on which this service is exposed when type is\\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\\nspecified, in-range, and not in use it will be used, otherwise the\\noperation will fail. If not specified, a port will be allocated if this\\nService requires one. If this field is specified when creating a\\nService which does not need it, creation will fail. This field will be\\nwiped when updating a Service to no longer need it (e.g. changing type\\nfrom NodePort to ClusterIP).\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\".\\nDefault is TCP.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the pods targeted by the service.\\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\\nIf this is a string, it will be looked up as a named port in the\\ntarget Pod's container ports. If this is not specified, the value\\nof the 'port' field is used (an identity map).\\nThis field is ignored for services with clusterIP=None, and should be\\nomitted or set equal to the 'port' field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"port\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this\\nService should disregard any indications of ready/not-ready.\\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\\nServices interpret this to mean that all endpoints are considered \\\"ready\\\" even if the\\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n \"type\": \"boolean\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Route service traffic to pods with label keys and values matching this\\nselector. If empty or not present, the service is assumed to have an\\nexternal process managing its endpoints, which Kubernetes will not\\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\\nIgnored if type is ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity.\\nEnable client IP based session affinity.\\nMust be ClientIP or None.\\nDefaults to None.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time.\\nThe value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\".\\nDefault value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficDistribution\": {\n \"description\": \"TrafficDistribution offers a way to express preferences for how traffic is\\ndistributed to Service endpoints. Implementations can use this field as a\\nhint, but are not required to guarantee strict adherence. If the field is\\nnot set, the implementation will apply its default routing strategy. If set\\nto \\\"PreferClose\\\", implementations should prioritize endpoints that are\\ntopologically close (e.g., same zone).\\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type determines how the Service is exposed. Defaults to ClusterIP. Valid\\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\\n\\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing\\nto endpoints. Endpoints are determined by the selector or if that is not\\nspecified, by manual construction of an Endpoints object or\\nEndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is\\nallocated and the endpoints are published as a set of endpoints rather\\nthan a virtual IP.\\n\\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which\\nroutes to the same endpoints as the clusterIP.\\n\\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer\\n(if supported in the current cloud) which routes to the same endpoints\\nas the clusterIP.\\n\\\"ExternalName\\\" aliases this service to the specified externalName.\\nSeveral other fields do not apply to ExternalName services.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS defines options for configuring TLS for HTTP.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.\\nThe referenced secret should contain the following:\\n\\n\\n- `ca.crt`: The certificate authority (optional).\\n- `tls.crt`: The certificate (or a chain).\\n- `tls.key`: The private key to the first certificate in the certificate chain.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selfSignedCertificate\": {\n \"description\": \"SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled indicates that the provisioning of the self-signed certifcate should be disabled.\",\n \"type\": \"boolean\"\n },\n \"subjectAltNames\": {\n \"description\": \"SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.\",\n \"items\": {\n \"description\": \"SubjectAlternativeName represents a SAN entry in a x509 certificate.\",\n \"properties\": {\n \"dns\": {\n \"description\": \"DNS is the DNS name of the subject.\",\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP is the IP address of the subject.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the Elastic Maps Server Docker image to deploy.\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the Elastic Maps Server pods\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying Deployment.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.\\nCan only be used if ECK is enforcing RBAC on references.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of Elastic Maps Server.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Elastic Maps Server\",\n \"type\": \"object\"\n}", + "version": "maps.k8s.elastic.co/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Elastic Maps Server", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Elasticsearch.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Elasticsearch.json new file mode 100644 index 00000000000..3d2bfdbdaf7 --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Elasticsearch.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "Elasticsearch", + "schema": "{\n \"description\": \"Elasticsearch represents an Elasticsearch resource in a Kubernetes cluster.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ElasticsearchSpec holds the specification of an Elasticsearch cluster.\",\n \"properties\": {\n \"auth\": {\n \"description\": \"Auth contains user authentication and authorization security settings for Elasticsearch.\",\n \"properties\": {\n \"disableElasticUser\": {\n \"description\": \"DisableElasticUser disables the default elastic user that is created by ECK.\",\n \"type\": \"boolean\"\n },\n \"fileRealm\": {\n \"description\": \"FileRealm to propagate to the Elasticsearch cluster.\",\n \"items\": {\n \"description\": \"FileRealmSource references users to create in the Elasticsearch cluster.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"roles\": {\n \"description\": \"Roles to propagate to the Elasticsearch cluster.\",\n \"items\": {\n \"description\": \"RoleSource references roles to create in the Elasticsearch cluster.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"http\": {\n \"description\": \"HTTP holds HTTP layer settings for Elasticsearch.\",\n \"properties\": {\n \"service\": {\n \"description\": \"Service defines the template for the associated Kubernetes Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the service.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the service.\",\n \"properties\": {\n \"allocateLoadBalancerNodePorts\": {\n \"description\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically\\nallocated for services with type LoadBalancer. Default is \\\"true\\\". It\\nmay be set to \\\"false\\\" if the cluster load-balancer does not rely on\\nNodePorts. If the caller requests specific NodePorts (by specifying a\\nvalue), those requests will be respected, regardless of this field.\\nThis field may only be set for services with type LoadBalancer and will\\nbe cleared if the type is changed to any other type.\",\n \"type\": \"boolean\"\n },\n \"clusterIP\": {\n \"description\": \"clusterIP is the IP address of the service and is usually assigned\\nrandomly. If an address is specified manually, is in-range (as per\\nsystem configuration), and is not in use, it will be allocated to the\\nservice; otherwise creation of the service will fail. This field may not\\nbe changed through updates unless the type field is also being changed\\nto ExternalName (which requires this field to be blank) or the type\\nfield is being changed from ExternalName (in which case this field may\\noptionally be specified, as describe above). Valid values are \\\"None\\\",\\nempty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a\\n\\\"headless service\\\" (no virtual IP), which is useful when direct endpoint\\nconnections are preferred and proxying is not required. Only applies to\\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\\nwhen creating a Service of type ExternalName, creation will fail. This\\nfield will be wiped when updating a Service to type ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"clusterIPs\": {\n \"description\": \"ClusterIPs is a list of IP addresses assigned to this service, and are\\nusually assigned randomly. If an address is specified manually, is\\nin-range (as per system configuration), and is not in use, it will be\\nallocated to the service; otherwise creation of the service will fail.\\nThis field may not be changed through updates unless the type field is\\nalso being changed to ExternalName (which requires this field to be\\nempty) or the type field is being changed from ExternalName (in which\\ncase this field may optionally be specified, as describe above). Valid\\nvalues are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting\\nthis to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is\\nuseful when direct endpoint connections are preferred and proxying is\\nnot required. Only applies to types ClusterIP, NodePort, and\\nLoadBalancer. If this field is specified when creating a Service of type\\nExternalName, creation will fail. This field will be wiped when updating\\na Service to type ExternalName. If this field is not specified, it will\\nbe initialized from the clusterIP field. If this field is specified,\\nclients must ensure that clusterIPs[0] and clusterIP have the same\\nvalue.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\\nThese IPs must correspond to the values of the ipFamilies field. Both\\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalIPs\": {\n \"description\": \"externalIPs is a list of IP addresses for which nodes in the cluster\\nwill also accept traffic for this service. These IPs are not managed by\\nKubernetes. The user is responsible for ensuring that traffic arrives\\nat a node with this IP. A common example is external load-balancers\\nthat are not part of the Kubernetes system.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalName\": {\n \"description\": \"externalName is the external reference that discovery mechanisms will\\nreturn as an alias for this service (e.g. a DNS CNAME record). No\\nproxying will be involved. Must be a lowercase RFC-1123 hostname\\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n \"type\": \"string\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts,\\nExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure\\nthe service in a way that assumes that external load balancers will take care\\nof balancing the service traffic between nodes, and so each node will deliver\\ntraffic only to the node-local endpoints of the service, without masquerading\\nthe client source IP. (Traffic mistakenly sent to a node with no endpoints will\\nbe dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of\\nrouting to all endpoints evenly (possibly modified by topology and other\\nfeatures). Note that traffic sent to an External IP or LoadBalancer IP from\\nwithin the cluster will always get \\\"Cluster\\\" semantics, but clients sending to\\na NodePort from within the cluster may need to take traffic policy into account\\nwhen picking a node.\",\n \"type\": \"string\"\n },\n \"healthCheckNodePort\": {\n \"description\": \"healthCheckNodePort specifies the healthcheck nodePort for the service.\\nThis only applies when type is set to LoadBalancer and\\nexternalTrafficPolicy is set to Local. If a value is specified, is\\nin-range, and is not in use, it will be used. If not specified, a value\\nwill be automatically allocated. External systems (e.g. load-balancers)\\ncan use this port to determine if a given node holds endpoints for this\\nservice or not. If this field is specified when creating a Service\\nwhich does not need it, creation will fail. This field will be wiped\\nwhen updating a Service to no longer need it (e.g. changing type).\\nThis field cannot be updated once set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"internalTrafficPolicy\": {\n \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods\\nonly want to talk to endpoints of the service on the same node as the pod,\\ndropping the traffic if there are no local endpoints. The default value,\\n\\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly\\n(possibly modified by topology and other features).\",\n \"type\": \"string\"\n },\n \"ipFamilies\": {\n \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\\nservice. This field is usually assigned automatically based on cluster\\nconfiguration and the ipFamilyPolicy field. If this field is specified\\nmanually, the requested family is available in the cluster,\\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\\nthe service will fail. This field is conditionally mutable: it allows\\nfor adding or removing a secondary IP family, but it does not allow\\nchanging the primary IP family of the Service. Valid values are \\\"IPv4\\\"\\nand \\\"IPv6\\\". This field only applies to Services of types ClusterIP,\\nNodePort, and LoadBalancer, and does apply to \\\"headless\\\" services.\\nThis field will be wiped when updating a Service to type ExternalName.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack families, in\\neither order). These families must correspond to the values of the\\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\\ngoverned by the ipFamilyPolicy field.\",\n \"items\": {\n \"description\": \"IPFamily represents the IP Family (IPv4 or IPv6). This type is used\\nto express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by\\nthis Service. If there is no value provided, then this field will be set\\nto SingleStack. Services can be \\\"SingleStack\\\" (a single IP family),\\n\\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or\\na single IP family on single-stack clusters), or \\\"RequireDualStack\\\"\\n(two IP families on dual-stack configured clusters, otherwise fail). The\\nipFamilies and clusterIPs fields depend on the value of this field. This\\nfield will be wiped when updating a service to type ExternalName.\",\n \"type\": \"string\"\n },\n \"loadBalancerClass\": {\n \"description\": \"loadBalancerClass is the class of the load balancer implementation this Service belongs to.\\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\\ne.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users.\\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\\nbalancer implementation is used, today this is typically done through the cloud provider integration,\\nbut should apply for any default implementation. If set, it is assumed that a load balancer\\nimplementation is watching for Services with a matching class. Any default load balancer\\nimplementation (e.g. cloud providers) should ignore Services that set this field.\\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n \"type\": \"string\"\n },\n \"loadBalancerIP\": {\n \"description\": \"Only applies to Service Type: LoadBalancer.\\nThis feature depends on whether the underlying cloud-provider supports specifying\\nthe loadBalancerIP when a load balancer is created.\\nThis field will be ignored if the cloud-provider does not support the feature.\\nDeprecated: This field was under-specified and its meaning varies across implementations.\\nUsing it is non-portable and it may not support dual-stack.\\nUsers are encouraged to use implementation-specific annotations when available.\",\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"If specified and supported by the platform, this will restrict traffic through the cloud-provider\\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\\ncloud-provider does not support the feature.\\\"\\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ports\": {\n \"description\": \"The list of ports that are exposed by this service.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"description\": \"ServicePort contains information on service's port.\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port.\\nThis is used as a hint for implementations to offer richer behavior for protocols that they understand.\\nThis field follows standard Kubernetes label syntax.\\nValid values are either:\\n\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per\\nRFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n\\n* Kubernetes-defined prefixed names:\\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n\\n* Other protocols should use implementation-defined prefixed names such as\\nmycompany.com/my-custom-protocol.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL.\\nAll ports within a ServiceSpec must have unique names. When considering\\nthe endpoints for a Service, this must match the 'name' field in the\\nEndpointPort.\\nOptional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"The port on each node on which this service is exposed when type is\\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\\nspecified, in-range, and not in use it will be used, otherwise the\\noperation will fail. If not specified, a port will be allocated if this\\nService requires one. If this field is specified when creating a\\nService which does not need it, creation will fail. This field will be\\nwiped when updating a Service to no longer need it (e.g. changing type\\nfrom NodePort to ClusterIP).\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\".\\nDefault is TCP.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the pods targeted by the service.\\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\\nIf this is a string, it will be looked up as a named port in the\\ntarget Pod's container ports. If this is not specified, the value\\nof the 'port' field is used (an identity map).\\nThis field is ignored for services with clusterIP=None, and should be\\nomitted or set equal to the 'port' field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"port\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this\\nService should disregard any indications of ready/not-ready.\\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\\nServices interpret this to mean that all endpoints are considered \\\"ready\\\" even if the\\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n \"type\": \"boolean\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Route service traffic to pods with label keys and values matching this\\nselector. If empty or not present, the service is assumed to have an\\nexternal process managing its endpoints, which Kubernetes will not\\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\\nIgnored if type is ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity.\\nEnable client IP based session affinity.\\nMust be ClientIP or None.\\nDefaults to None.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time.\\nThe value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\".\\nDefault value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficDistribution\": {\n \"description\": \"TrafficDistribution offers a way to express preferences for how traffic is\\ndistributed to Service endpoints. Implementations can use this field as a\\nhint, but are not required to guarantee strict adherence. If the field is\\nnot set, the implementation will apply its default routing strategy. If set\\nto \\\"PreferClose\\\", implementations should prioritize endpoints that are\\ntopologically close (e.g., same zone).\\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type determines how the Service is exposed. Defaults to ClusterIP. Valid\\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\\n\\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing\\nto endpoints. Endpoints are determined by the selector or if that is not\\nspecified, by manual construction of an Endpoints object or\\nEndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is\\nallocated and the endpoints are published as a set of endpoints rather\\nthan a virtual IP.\\n\\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which\\nroutes to the same endpoints as the clusterIP.\\n\\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer\\n(if supported in the current cloud) which routes to the same endpoints\\nas the clusterIP.\\n\\\"ExternalName\\\" aliases this service to the specified externalName.\\nSeveral other fields do not apply to ExternalName services.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS defines options for configuring TLS for HTTP.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.\\nThe referenced secret should contain the following:\\n\\n\\n- `ca.crt`: The certificate authority (optional).\\n- `tls.crt`: The certificate (or a chain).\\n- `tls.key`: The private key to the first certificate in the certificate chain.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selfSignedCertificate\": {\n \"description\": \"SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled indicates that the provisioning of the self-signed certifcate should be disabled.\",\n \"type\": \"boolean\"\n },\n \"subjectAltNames\": {\n \"description\": \"SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.\",\n \"items\": {\n \"description\": \"SubjectAlternativeName represents a SAN entry in a x509 certificate.\",\n \"properties\": {\n \"dns\": {\n \"description\": \"DNS is the DNS name of the subject.\",\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP is the IP address of the subject.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the Elasticsearch Docker image to deploy.\",\n \"type\": \"string\"\n },\n \"monitoring\": {\n \"description\": \"Monitoring enables you to collect and ship log and monitoring data of this Elasticsearch cluster.\\nSee https://www.elastic.co/guide/en/elasticsearch/reference/current/monitor-elasticsearch-cluster.html.\\nMetricbeat and Filebeat are deployed in the same Pod as sidecars and each one sends data to one or two different\\nElasticsearch monitoring clusters running in the same Kubernetes cluster.\",\n \"properties\": {\n \"logs\": {\n \"description\": \"Logs holds references to Elasticsearch clusters which receive log data from an associated resource.\",\n \"properties\": {\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single Elasticsearch cluster is currently supported.\",\n \"items\": {\n \"description\": \"ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator\\nor a Secret describing an external Elastic resource not managed by the operator.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"metrics\": {\n \"description\": \"Metrics holds references to Elasticsearch clusters which receive monitoring data from this resource.\",\n \"properties\": {\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single Elasticsearch cluster is currently supported.\",\n \"items\": {\n \"description\": \"ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator\\nor a Secret describing an external Elastic resource not managed by the operator.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSets\": {\n \"description\": \"NodeSets allow specifying groups of Elasticsearch nodes sharing the same configuration and Pod templates.\",\n \"items\": {\n \"description\": \"NodeSet is the specification for a group of Elasticsearch nodes sharing the same configuration and a Pod template.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the Elasticsearch configuration.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"count\": {\n \"description\": \"Count of Elasticsearch nodes to deploy.\\nIf the node set is managed by an autoscaling policy the initial value is automatically set by the autoscaling controller.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"Name of this set of nodes. Becomes a part of the Elasticsearch node.name setting.\",\n \"maxLength\": 23,\n \"pattern\": \"[a-zA-Z0-9-]+\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the Pods belonging to this NodeSet.\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"VolumeClaimTemplates is a list of persistent volume claims to be used by each Pod in this NodeSet.\\nEvery claim in this list must have a matching volumeMount in one of the containers defined in the PodTemplate.\\nItems defined here take precedence over any default claims added by the operator with the same name.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object.\\nServers should convert recognized schemas to the latest internal value, and\\nmay reject unrecognized values.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents.\\nServers may infer this from the endpoint the client submits requests to.\\nCannot be updated.\\nIn CamelCase.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"spec defines the desired characteristics of a volume requested by a pod author.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"status represents the current information/status of a persistent volume claim.\\nRead-only.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the actual access modes the volume backing the PVC has.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"allocatedResourceStatuses\": {\n \"additionalProperties\": {\n \"description\": \"When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource\\nthat it does not recognizes, then it should ignore that update and let other controllers\\nhandle it.\",\n \"type\": \"string\"\n },\n \"description\": \"allocatedResourceStatuses stores status of resource being resized for the given PVC.\\nKey names follow standard Kubernetes label syntax. Valid values are either:\\n\\t* Un-prefixed keys:\\n\\t\\t- storage - the capacity of the volume.\\n\\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\"\\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\\nreserved and hence may not be used.\\n\\n\\nClaimResourceStatus can be in any of following states:\\n\\t- ControllerResizeInProgress:\\n\\t\\tState set when resize controller starts resizing the volume in control-plane.\\n\\t- ControllerResizeFailed:\\n\\t\\tState set when resize has failed in resize controller with a terminal error.\\n\\t- NodeResizePending:\\n\\t\\tState set when resize controller has finished resizing the volume but further resizing of\\n\\t\\tvolume is needed on the node.\\n\\t- NodeResizeInProgress:\\n\\t\\tState set when kubelet starts resizing the volume.\\n\\t- NodeResizeFailed:\\n\\t\\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\\n\\t\\tNodeResizeFailed.\\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\\n\\t- pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeInProgress\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeFailed\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizePending\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeInProgress\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeFailed\\\"\\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\\n\\n\\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\\nshould ignore the update for the purpose it was designed. For example - a controller that\\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\\nresources associated with PVC.\\n\\n\\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"granular\"\n },\n \"allocatedResources\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"allocatedResources tracks the resources allocated to a PVC including its capacity.\\nKey names follow standard Kubernetes label syntax. Valid values are either:\\n\\t* Un-prefixed keys:\\n\\t\\t- storage - the capacity of the volume.\\n\\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\"\\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\\nreserved and hence may not be used.\\n\\n\\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\\nis requested.\\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\\nIf a volume expansion capacity request is lowered, allocatedResources is only\\nlowered if there are no expansion operations in progress and if the actual volume capacity\\nis equal or lower than the requested capacity.\\n\\n\\nA controller that receives PVC update with previously unknown resourceName\\nshould ignore the update for the purpose it was designed. For example - a controller that\\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\\nresources associated with PVC.\\n\\n\\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"capacity represents the actual resources of the underlying volume.\",\n \"type\": \"object\"\n },\n \"conditions\": {\n \"description\": \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being\\nresized then the Condition will be set to 'Resizing'.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaimCondition contains details about state of pvc\",\n \"properties\": {\n \"lastProbeTime\": {\n \"description\": \"lastProbeTime is the time we probed the condition.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"lastTransitionTime\": {\n \"description\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"message is the human-readable message indicating details about last transition.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"reason is a unique, this should be a short, machine understandable string that gives the reason\\nfor condition's last transition. If it reports \\\"Resizing\\\" that means the underlying\\npersistent volume is being resized.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"type\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"currentVolumeAttributesClassName\": {\n \"description\": \"currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.\\nWhen unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim\\nThis is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"type\": \"string\"\n },\n \"modifyVolumeStatus\": {\n \"description\": \"ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.\\nWhen this is unset, there is no ModifyVolume operation being attempted.\\nThis is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"properties\": {\n \"status\": {\n \"description\": \"status is the status of the ControllerModifyVolume operation. It can be in any of following states:\\n - Pending\\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\\n the specified VolumeAttributesClass not existing.\\n - InProgress\\n InProgress indicates that the volume is being modified.\\n - Infeasible\\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\\n\\t resolve the error, a valid VolumeAttributesClass needs to be specified.\\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\",\n \"type\": \"string\"\n },\n \"targetVolumeAttributesClassName\": {\n \"description\": \"targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"type\": \"object\"\n },\n \"phase\": {\n \"description\": \"phase represents the current phase of PersistentVolumeClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"podDisruptionBudget\": {\n \"description\": \"PodDisruptionBudget provides access to the default Pod disruption budget for the Elasticsearch cluster.\\nThe default budget doesn't allow any Pod to be removed in case the cluster is not green or if there is only one node of type `data` or `master`.\\nIn all other cases the default PodDisruptionBudget sets `minUnavailable` equal to the total number of nodes minus 1.\\nTo disable, set `PodDisruptionBudget` to the empty value (`{}` in YAML).\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the PDB.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the PDB.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"An eviction is allowed if at most \\\"maxUnavailable\\\" pods selected by\\n\\\"selector\\\" are unavailable after the eviction, i.e. even in absence of\\nthe evicted pod. For example, one can prevent all voluntary evictions\\nby specifying 0. This is a mutually exclusive setting with \\\"minAvailable\\\".\",\n \"x-kubernetes-int-or-string\": true\n },\n \"minAvailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"An eviction is allowed if at least \\\"minAvailable\\\" pods selected by\\n\\\"selector\\\" will still be available after the eviction, i.e. even in the\\nabsence of the evicted pod. So for example you can prevent all voluntary\\nevictions by specifying \\\"100%\\\".\",\n \"x-kubernetes-int-or-string\": true\n },\n \"selector\": {\n \"description\": \"Label query over pods whose evictions are managed by the disruption\\nbudget.\\nA null selector will match no pods, while an empty ({}) selector will select\\nall pods within the namespace.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"unhealthyPodEvictionPolicy\": {\n \"description\": \"UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\\nshould be considered for eviction. Current implementation considers healthy pods,\\nas pods that have status.conditions item with type=\\\"Ready\\\",status=\\\"True\\\".\\n\\n\\nValid policies are IfHealthyBudget and AlwaysAllow.\\nIf no policy is specified, the default behavior will be used,\\nwhich corresponds to the IfHealthyBudget policy.\\n\\n\\nIfHealthyBudget policy means that running pods (status.phase=\\\"Running\\\"),\\nbut not yet healthy can be evicted only if the guarded application is not\\ndisrupted (status.currentHealthy is at least equal to status.desiredHealthy).\\nHealthy pods will be subject to the PDB for eviction.\\n\\n\\nAlwaysAllow policy means that all running pods (status.phase=\\\"Running\\\"),\\nbut not yet healthy are considered disrupted and can be evicted regardless\\nof whether the criteria in a PDB is met. This means perspective running\\npods of a disrupted application might not get a chance to become healthy.\\nHealthy pods will be subject to the PDB for eviction.\\n\\n\\nAdditional policies may be added in the future.\\nClients making eviction decisions should disallow eviction of unhealthy pods\\nif they encounter an unrecognized policy in this field.\\n\\n\\nThis field is beta-level. The eviction API uses this field when\\nthe feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"remoteClusters\": {\n \"description\": \"RemoteClusters enables you to establish uni-directional connections to a remote Elasticsearch cluster.\",\n \"items\": {\n \"description\": \"RemoteCluster declares a remote Elasticsearch cluster connection.\",\n \"properties\": {\n \"elasticsearchRef\": {\n \"description\": \"ElasticsearchRef is a reference to an Elasticsearch cluster running within the same k8s cluster.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the name of the remote cluster as it is set in the Elasticsearch settings.\\nThe name is expected to be unique for each remote clusters.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying StatefulSets.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"secureSettings\": {\n \"description\": \"SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for Elasticsearch.\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is used to check access from the current resource to a resource (for ex. a remote Elasticsearch cluster) in a different namespace.\\nCan only be used if ECK is enforcing RBAC on references.\",\n \"type\": \"string\"\n },\n \"transport\": {\n \"description\": \"Transport holds transport layer settings for Elasticsearch.\",\n \"properties\": {\n \"service\": {\n \"description\": \"Service defines the template for the associated Kubernetes Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the service.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the service.\",\n \"properties\": {\n \"allocateLoadBalancerNodePorts\": {\n \"description\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically\\nallocated for services with type LoadBalancer. Default is \\\"true\\\". It\\nmay be set to \\\"false\\\" if the cluster load-balancer does not rely on\\nNodePorts. If the caller requests specific NodePorts (by specifying a\\nvalue), those requests will be respected, regardless of this field.\\nThis field may only be set for services with type LoadBalancer and will\\nbe cleared if the type is changed to any other type.\",\n \"type\": \"boolean\"\n },\n \"clusterIP\": {\n \"description\": \"clusterIP is the IP address of the service and is usually assigned\\nrandomly. If an address is specified manually, is in-range (as per\\nsystem configuration), and is not in use, it will be allocated to the\\nservice; otherwise creation of the service will fail. This field may not\\nbe changed through updates unless the type field is also being changed\\nto ExternalName (which requires this field to be blank) or the type\\nfield is being changed from ExternalName (in which case this field may\\noptionally be specified, as describe above). Valid values are \\\"None\\\",\\nempty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a\\n\\\"headless service\\\" (no virtual IP), which is useful when direct endpoint\\nconnections are preferred and proxying is not required. Only applies to\\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\\nwhen creating a Service of type ExternalName, creation will fail. This\\nfield will be wiped when updating a Service to type ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"clusterIPs\": {\n \"description\": \"ClusterIPs is a list of IP addresses assigned to this service, and are\\nusually assigned randomly. If an address is specified manually, is\\nin-range (as per system configuration), and is not in use, it will be\\nallocated to the service; otherwise creation of the service will fail.\\nThis field may not be changed through updates unless the type field is\\nalso being changed to ExternalName (which requires this field to be\\nempty) or the type field is being changed from ExternalName (in which\\ncase this field may optionally be specified, as describe above). Valid\\nvalues are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting\\nthis to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is\\nuseful when direct endpoint connections are preferred and proxying is\\nnot required. Only applies to types ClusterIP, NodePort, and\\nLoadBalancer. If this field is specified when creating a Service of type\\nExternalName, creation will fail. This field will be wiped when updating\\na Service to type ExternalName. If this field is not specified, it will\\nbe initialized from the clusterIP field. If this field is specified,\\nclients must ensure that clusterIPs[0] and clusterIP have the same\\nvalue.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\\nThese IPs must correspond to the values of the ipFamilies field. Both\\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalIPs\": {\n \"description\": \"externalIPs is a list of IP addresses for which nodes in the cluster\\nwill also accept traffic for this service. These IPs are not managed by\\nKubernetes. The user is responsible for ensuring that traffic arrives\\nat a node with this IP. A common example is external load-balancers\\nthat are not part of the Kubernetes system.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalName\": {\n \"description\": \"externalName is the external reference that discovery mechanisms will\\nreturn as an alias for this service (e.g. a DNS CNAME record). No\\nproxying will be involved. Must be a lowercase RFC-1123 hostname\\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n \"type\": \"string\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts,\\nExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure\\nthe service in a way that assumes that external load balancers will take care\\nof balancing the service traffic between nodes, and so each node will deliver\\ntraffic only to the node-local endpoints of the service, without masquerading\\nthe client source IP. (Traffic mistakenly sent to a node with no endpoints will\\nbe dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of\\nrouting to all endpoints evenly (possibly modified by topology and other\\nfeatures). Note that traffic sent to an External IP or LoadBalancer IP from\\nwithin the cluster will always get \\\"Cluster\\\" semantics, but clients sending to\\na NodePort from within the cluster may need to take traffic policy into account\\nwhen picking a node.\",\n \"type\": \"string\"\n },\n \"healthCheckNodePort\": {\n \"description\": \"healthCheckNodePort specifies the healthcheck nodePort for the service.\\nThis only applies when type is set to LoadBalancer and\\nexternalTrafficPolicy is set to Local. If a value is specified, is\\nin-range, and is not in use, it will be used. If not specified, a value\\nwill be automatically allocated. External systems (e.g. load-balancers)\\ncan use this port to determine if a given node holds endpoints for this\\nservice or not. If this field is specified when creating a Service\\nwhich does not need it, creation will fail. This field will be wiped\\nwhen updating a Service to no longer need it (e.g. changing type).\\nThis field cannot be updated once set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"internalTrafficPolicy\": {\n \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods\\nonly want to talk to endpoints of the service on the same node as the pod,\\ndropping the traffic if there are no local endpoints. The default value,\\n\\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly\\n(possibly modified by topology and other features).\",\n \"type\": \"string\"\n },\n \"ipFamilies\": {\n \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\\nservice. This field is usually assigned automatically based on cluster\\nconfiguration and the ipFamilyPolicy field. If this field is specified\\nmanually, the requested family is available in the cluster,\\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\\nthe service will fail. This field is conditionally mutable: it allows\\nfor adding or removing a secondary IP family, but it does not allow\\nchanging the primary IP family of the Service. Valid values are \\\"IPv4\\\"\\nand \\\"IPv6\\\". This field only applies to Services of types ClusterIP,\\nNodePort, and LoadBalancer, and does apply to \\\"headless\\\" services.\\nThis field will be wiped when updating a Service to type ExternalName.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack families, in\\neither order). These families must correspond to the values of the\\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\\ngoverned by the ipFamilyPolicy field.\",\n \"items\": {\n \"description\": \"IPFamily represents the IP Family (IPv4 or IPv6). This type is used\\nto express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by\\nthis Service. If there is no value provided, then this field will be set\\nto SingleStack. Services can be \\\"SingleStack\\\" (a single IP family),\\n\\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or\\na single IP family on single-stack clusters), or \\\"RequireDualStack\\\"\\n(two IP families on dual-stack configured clusters, otherwise fail). The\\nipFamilies and clusterIPs fields depend on the value of this field. This\\nfield will be wiped when updating a service to type ExternalName.\",\n \"type\": \"string\"\n },\n \"loadBalancerClass\": {\n \"description\": \"loadBalancerClass is the class of the load balancer implementation this Service belongs to.\\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\\ne.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users.\\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\\nbalancer implementation is used, today this is typically done through the cloud provider integration,\\nbut should apply for any default implementation. If set, it is assumed that a load balancer\\nimplementation is watching for Services with a matching class. Any default load balancer\\nimplementation (e.g. cloud providers) should ignore Services that set this field.\\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n \"type\": \"string\"\n },\n \"loadBalancerIP\": {\n \"description\": \"Only applies to Service Type: LoadBalancer.\\nThis feature depends on whether the underlying cloud-provider supports specifying\\nthe loadBalancerIP when a load balancer is created.\\nThis field will be ignored if the cloud-provider does not support the feature.\\nDeprecated: This field was under-specified and its meaning varies across implementations.\\nUsing it is non-portable and it may not support dual-stack.\\nUsers are encouraged to use implementation-specific annotations when available.\",\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"If specified and supported by the platform, this will restrict traffic through the cloud-provider\\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\\ncloud-provider does not support the feature.\\\"\\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ports\": {\n \"description\": \"The list of ports that are exposed by this service.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"description\": \"ServicePort contains information on service's port.\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port.\\nThis is used as a hint for implementations to offer richer behavior for protocols that they understand.\\nThis field follows standard Kubernetes label syntax.\\nValid values are either:\\n\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per\\nRFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n\\n* Kubernetes-defined prefixed names:\\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n\\n* Other protocols should use implementation-defined prefixed names such as\\nmycompany.com/my-custom-protocol.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL.\\nAll ports within a ServiceSpec must have unique names. When considering\\nthe endpoints for a Service, this must match the 'name' field in the\\nEndpointPort.\\nOptional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"The port on each node on which this service is exposed when type is\\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\\nspecified, in-range, and not in use it will be used, otherwise the\\noperation will fail. If not specified, a port will be allocated if this\\nService requires one. If this field is specified when creating a\\nService which does not need it, creation will fail. This field will be\\nwiped when updating a Service to no longer need it (e.g. changing type\\nfrom NodePort to ClusterIP).\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\".\\nDefault is TCP.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the pods targeted by the service.\\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\\nIf this is a string, it will be looked up as a named port in the\\ntarget Pod's container ports. If this is not specified, the value\\nof the 'port' field is used (an identity map).\\nThis field is ignored for services with clusterIP=None, and should be\\nomitted or set equal to the 'port' field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"port\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this\\nService should disregard any indications of ready/not-ready.\\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\\nServices interpret this to mean that all endpoints are considered \\\"ready\\\" even if the\\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n \"type\": \"boolean\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Route service traffic to pods with label keys and values matching this\\nselector. If empty or not present, the service is assumed to have an\\nexternal process managing its endpoints, which Kubernetes will not\\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\\nIgnored if type is ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity.\\nEnable client IP based session affinity.\\nMust be ClientIP or None.\\nDefaults to None.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time.\\nThe value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\".\\nDefault value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficDistribution\": {\n \"description\": \"TrafficDistribution offers a way to express preferences for how traffic is\\ndistributed to Service endpoints. Implementations can use this field as a\\nhint, but are not required to guarantee strict adherence. If the field is\\nnot set, the implementation will apply its default routing strategy. If set\\nto \\\"PreferClose\\\", implementations should prioritize endpoints that are\\ntopologically close (e.g., same zone).\\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type determines how the Service is exposed. Defaults to ClusterIP. Valid\\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\\n\\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing\\nto endpoints. Endpoints are determined by the selector or if that is not\\nspecified, by manual construction of an Endpoints object or\\nEndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is\\nallocated and the endpoints are published as a set of endpoints rather\\nthan a virtual IP.\\n\\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which\\nroutes to the same endpoints as the clusterIP.\\n\\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer\\n(if supported in the current cloud) which routes to the same endpoints\\nas the clusterIP.\\n\\\"ExternalName\\\" aliases this service to the specified externalName.\\nSeveral other fields do not apply to ExternalName services.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS defines options for configuring TLS on the transport layer.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"Certificate is a reference to a Kubernetes secret that contains the CA certificate\\nand private key for generating node certificates.\\nThe referenced secret should contain the following:\\n\\n\\n- `ca.crt`: The CA certificate in PEM format.\\n- `ca.key`: The private key for the CA certificate in PEM format.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"certificateAuthorities\": {\n \"description\": \"CertificateAuthorities is a reference to a config map that contains one or more x509 certificates for\\ntrusted authorities in PEM format. The certificates need to be in a file called `ca.crt`.\",\n \"properties\": {\n \"configMapName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"otherNameSuffix\": {\n \"description\": \"OtherNameSuffix when defined will be prefixed with the Pod name and used as the common name,\\nand the first DNSName, as well as an OtherName required by Elasticsearch in the Subject Alternative Name\\nextension of each Elasticsearch node's transport TLS certificate.\\nExample: if set to \\\"node.cluster.local\\\", the generated certificate will have its otherName set to \\\"\\u003cpod_name\\u003e.node.cluster.local\\\".\",\n \"type\": \"string\"\n },\n \"selfSignedCertificates\": {\n \"description\": \"SelfSignedCertificates allows configuring the self-signed certificate generated by the operator.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled indicates that provisioning of the self-signed certificates should be disabled.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"subjectAltNames\": {\n \"description\": \"SubjectAlternativeNames is a list of SANs to include in the generated node transport TLS certificates.\",\n \"items\": {\n \"description\": \"SubjectAlternativeName represents a SAN entry in a x509 certificate.\",\n \"properties\": {\n \"dns\": {\n \"description\": \"DNS is the DNS name of the subject.\",\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP is the IP address of the subject.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"updateStrategy\": {\n \"description\": \"UpdateStrategy specifies how updates to the cluster should be performed.\",\n \"properties\": {\n \"changeBudget\": {\n \"description\": \"ChangeBudget defines the constraints to consider when applying changes to the Elasticsearch cluster.\",\n \"properties\": {\n \"maxSurge\": {\n \"description\": \"MaxSurge is the maximum number of new Pods that can be created exceeding the original number of Pods defined in\\nthe specification. MaxSurge is only taken into consideration when scaling up. Setting a negative value will\\ndisable the restriction. Defaults to unbounded if not specified.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"maxUnavailable\": {\n \"description\": \"MaxUnavailable is the maximum number of Pods that can be unavailable (not ready) during the update due to\\ncircumstances under the control of the operator. Setting a negative value will disable this restriction.\\nDefaults to 1 if not specified.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"Version of Elasticsearch.\",\n \"type\": \"string\"\n },\n \"volumeClaimDeletePolicy\": {\n \"description\": \"VolumeClaimDeletePolicy sets the policy for handling deletion of PersistentVolumeClaims for all NodeSets.\\nPossible values are DeleteOnScaledownOnly and DeleteOnScaledownAndClusterDeletion. Defaults to DeleteOnScaledownAndClusterDeletion.\",\n \"enum\": [\n \"DeleteOnScaledownOnly\",\n \"DeleteOnScaledownAndClusterDeletion\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"nodeSets\",\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Elasticsearch\",\n \"type\": \"object\"\n}", + "version": "elasticsearch.k8s.elastic.co/v1" + }, + "configuration": null, + "description": "", + "displayName": "Elasticsearch", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ElasticsearchAutoscaler.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ElasticsearchAutoscaler.json new file mode 100644 index 00000000000..1d7134019c8 --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/ElasticsearchAutoscaler.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ElasticsearchAutoscaler", + "schema": "{\n \"description\": \"ElasticsearchAutoscaler represents an ElasticsearchAutoscaler resource in a Kubernetes cluster.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ElasticsearchAutoscalerSpec holds the specification of an Elasticsearch autoscaler resource.\",\n \"properties\": {\n \"elasticsearchRef\": {\n \"description\": \"ElasticsearchRef is a reference to an Elasticsearch cluster that exists in the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the Elasticsearch resource to scale automatically.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"policies\": {\n \"items\": {\n \"description\": \"AutoscalingPolicySpec holds a named autoscaling policy and the associated resources limits (cpu, memory, storage).\",\n \"properties\": {\n \"deciders\": {\n \"additionalProperties\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"DeciderSettings allow the user to tweak autoscaling deciders.\\nThe map data structure complies with the \\u003ckey,value\\u003e format expected by Elasticsearch.\",\n \"type\": \"object\"\n },\n \"description\": \"Deciders allow the user to override default settings for autoscaling deciders.\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name identifies the autoscaling policy in the autoscaling specification.\",\n \"type\": \"string\"\n },\n \"resources\": {\n \"description\": \"AutoscalingResources model the limits, submitted by the user, for the supported resources in an autoscaling policy.\\nOnly the node count range is mandatory. For other resources, a limit range is required only\\nif the Elasticsearch autoscaling capacity API returns a requirement for a given resource.\\nFor example, the memory limit range is only required if the autoscaling API response contains a memory requirement.\\nIf there is no limit range for a resource, and if that resource is not mandatory, then the resources in the NodeSets\\nmanaged by the autoscaling policy are left untouched.\",\n \"properties\": {\n \"cpu\": {\n \"description\": \"QuantityRange models a resource limit range for resources which can be expressed with resource.Quantity.\",\n \"properties\": {\n \"max\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Max represents the upper limit for the resources managed by the autoscaler.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"min\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Min represents the lower limit for the resources managed by the autoscaler.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"requestsToLimitsRatio\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"RequestsToLimitsRatio allows to customize Kubernetes resource Limit based on the Request.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"max\",\n \"min\"\n ],\n \"type\": \"object\"\n },\n \"memory\": {\n \"description\": \"QuantityRange models a resource limit range for resources which can be expressed with resource.Quantity.\",\n \"properties\": {\n \"max\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Max represents the upper limit for the resources managed by the autoscaler.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"min\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Min represents the lower limit for the resources managed by the autoscaler.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"requestsToLimitsRatio\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"RequestsToLimitsRatio allows to customize Kubernetes resource Limit based on the Request.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"max\",\n \"min\"\n ],\n \"type\": \"object\"\n },\n \"nodeCount\": {\n \"description\": \"NodeCountRange is used to model the minimum and the maximum number of nodes over all the NodeSets managed by the same autoscaling policy.\",\n \"properties\": {\n \"max\": {\n \"description\": \"Max represents the maximum number of nodes in a tier.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"min\": {\n \"description\": \"Min represents the minimum number of nodes in a tier.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"max\",\n \"min\"\n ],\n \"type\": \"object\"\n },\n \"storage\": {\n \"description\": \"QuantityRange models a resource limit range for resources which can be expressed with resource.Quantity.\",\n \"properties\": {\n \"max\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Max represents the upper limit for the resources managed by the autoscaler.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"min\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Min represents the lower limit for the resources managed by the autoscaler.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"requestsToLimitsRatio\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"RequestsToLimitsRatio allows to customize Kubernetes resource Limit based on the Request.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"max\",\n \"min\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"nodeCount\"\n ],\n \"type\": \"object\"\n },\n \"roles\": {\n \"description\": \"An autoscaling policy must target a unique set of roles.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"resources\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pollingPeriod\": {\n \"description\": \"PollingPeriod is the period at which to synchronize with the Elasticsearch autoscaling API.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"policies\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Elasticsearch Autoscaler\",\n \"type\": \"object\"\n}", + "version": "autoscaling.k8s.elastic.co/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Elasticsearch Autoscaler", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/EnterpriseSearch.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/EnterpriseSearch.json new file mode 100644 index 00000000000..0eebff17a47 --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/EnterpriseSearch.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "EnterpriseSearch", + "schema": "{\n \"description\": \"EnterpriseSearch is a Kubernetes CRD to represent Enterprise Search.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"EnterpriseSearchSpec holds the specification of an Enterprise Search resource.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the Enterprise Search configuration.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"configRef\": {\n \"description\": \"ConfigRef contains a reference to an existing Kubernetes Secret holding the Enterprise Search configuration.\\nConfiguration settings are merged and have precedence over settings specified in `config`.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"count\": {\n \"description\": \"Count of Enterprise Search instances to deploy.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"elasticsearchRef\": {\n \"description\": \"ElasticsearchRef is a reference to the Elasticsearch cluster running in the same Kubernetes cluster.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http\": {\n \"description\": \"HTTP holds the HTTP layer configuration for Enterprise Search resource.\",\n \"properties\": {\n \"service\": {\n \"description\": \"Service defines the template for the associated Kubernetes Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the service.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the service.\",\n \"properties\": {\n \"allocateLoadBalancerNodePorts\": {\n \"description\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically\\nallocated for services with type LoadBalancer. Default is \\\"true\\\". It\\nmay be set to \\\"false\\\" if the cluster load-balancer does not rely on\\nNodePorts. If the caller requests specific NodePorts (by specifying a\\nvalue), those requests will be respected, regardless of this field.\\nThis field may only be set for services with type LoadBalancer and will\\nbe cleared if the type is changed to any other type.\",\n \"type\": \"boolean\"\n },\n \"clusterIP\": {\n \"description\": \"clusterIP is the IP address of the service and is usually assigned\\nrandomly. If an address is specified manually, is in-range (as per\\nsystem configuration), and is not in use, it will be allocated to the\\nservice; otherwise creation of the service will fail. This field may not\\nbe changed through updates unless the type field is also being changed\\nto ExternalName (which requires this field to be blank) or the type\\nfield is being changed from ExternalName (in which case this field may\\noptionally be specified, as describe above). Valid values are \\\"None\\\",\\nempty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a\\n\\\"headless service\\\" (no virtual IP), which is useful when direct endpoint\\nconnections are preferred and proxying is not required. Only applies to\\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\\nwhen creating a Service of type ExternalName, creation will fail. This\\nfield will be wiped when updating a Service to type ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"clusterIPs\": {\n \"description\": \"ClusterIPs is a list of IP addresses assigned to this service, and are\\nusually assigned randomly. If an address is specified manually, is\\nin-range (as per system configuration), and is not in use, it will be\\nallocated to the service; otherwise creation of the service will fail.\\nThis field may not be changed through updates unless the type field is\\nalso being changed to ExternalName (which requires this field to be\\nempty) or the type field is being changed from ExternalName (in which\\ncase this field may optionally be specified, as describe above). Valid\\nvalues are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting\\nthis to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is\\nuseful when direct endpoint connections are preferred and proxying is\\nnot required. Only applies to types ClusterIP, NodePort, and\\nLoadBalancer. If this field is specified when creating a Service of type\\nExternalName, creation will fail. This field will be wiped when updating\\na Service to type ExternalName. If this field is not specified, it will\\nbe initialized from the clusterIP field. If this field is specified,\\nclients must ensure that clusterIPs[0] and clusterIP have the same\\nvalue.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\\nThese IPs must correspond to the values of the ipFamilies field. Both\\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalIPs\": {\n \"description\": \"externalIPs is a list of IP addresses for which nodes in the cluster\\nwill also accept traffic for this service. These IPs are not managed by\\nKubernetes. The user is responsible for ensuring that traffic arrives\\nat a node with this IP. A common example is external load-balancers\\nthat are not part of the Kubernetes system.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalName\": {\n \"description\": \"externalName is the external reference that discovery mechanisms will\\nreturn as an alias for this service (e.g. a DNS CNAME record). No\\nproxying will be involved. Must be a lowercase RFC-1123 hostname\\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n \"type\": \"string\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts,\\nExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure\\nthe service in a way that assumes that external load balancers will take care\\nof balancing the service traffic between nodes, and so each node will deliver\\ntraffic only to the node-local endpoints of the service, without masquerading\\nthe client source IP. (Traffic mistakenly sent to a node with no endpoints will\\nbe dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of\\nrouting to all endpoints evenly (possibly modified by topology and other\\nfeatures). Note that traffic sent to an External IP or LoadBalancer IP from\\nwithin the cluster will always get \\\"Cluster\\\" semantics, but clients sending to\\na NodePort from within the cluster may need to take traffic policy into account\\nwhen picking a node.\",\n \"type\": \"string\"\n },\n \"healthCheckNodePort\": {\n \"description\": \"healthCheckNodePort specifies the healthcheck nodePort for the service.\\nThis only applies when type is set to LoadBalancer and\\nexternalTrafficPolicy is set to Local. If a value is specified, is\\nin-range, and is not in use, it will be used. If not specified, a value\\nwill be automatically allocated. External systems (e.g. load-balancers)\\ncan use this port to determine if a given node holds endpoints for this\\nservice or not. If this field is specified when creating a Service\\nwhich does not need it, creation will fail. This field will be wiped\\nwhen updating a Service to no longer need it (e.g. changing type).\\nThis field cannot be updated once set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"internalTrafficPolicy\": {\n \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods\\nonly want to talk to endpoints of the service on the same node as the pod,\\ndropping the traffic if there are no local endpoints. The default value,\\n\\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly\\n(possibly modified by topology and other features).\",\n \"type\": \"string\"\n },\n \"ipFamilies\": {\n \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\\nservice. This field is usually assigned automatically based on cluster\\nconfiguration and the ipFamilyPolicy field. If this field is specified\\nmanually, the requested family is available in the cluster,\\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\\nthe service will fail. This field is conditionally mutable: it allows\\nfor adding or removing a secondary IP family, but it does not allow\\nchanging the primary IP family of the Service. Valid values are \\\"IPv4\\\"\\nand \\\"IPv6\\\". This field only applies to Services of types ClusterIP,\\nNodePort, and LoadBalancer, and does apply to \\\"headless\\\" services.\\nThis field will be wiped when updating a Service to type ExternalName.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack families, in\\neither order). These families must correspond to the values of the\\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\\ngoverned by the ipFamilyPolicy field.\",\n \"items\": {\n \"description\": \"IPFamily represents the IP Family (IPv4 or IPv6). This type is used\\nto express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by\\nthis Service. If there is no value provided, then this field will be set\\nto SingleStack. Services can be \\\"SingleStack\\\" (a single IP family),\\n\\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or\\na single IP family on single-stack clusters), or \\\"RequireDualStack\\\"\\n(two IP families on dual-stack configured clusters, otherwise fail). The\\nipFamilies and clusterIPs fields depend on the value of this field. This\\nfield will be wiped when updating a service to type ExternalName.\",\n \"type\": \"string\"\n },\n \"loadBalancerClass\": {\n \"description\": \"loadBalancerClass is the class of the load balancer implementation this Service belongs to.\\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\\ne.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users.\\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\\nbalancer implementation is used, today this is typically done through the cloud provider integration,\\nbut should apply for any default implementation. If set, it is assumed that a load balancer\\nimplementation is watching for Services with a matching class. Any default load balancer\\nimplementation (e.g. cloud providers) should ignore Services that set this field.\\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n \"type\": \"string\"\n },\n \"loadBalancerIP\": {\n \"description\": \"Only applies to Service Type: LoadBalancer.\\nThis feature depends on whether the underlying cloud-provider supports specifying\\nthe loadBalancerIP when a load balancer is created.\\nThis field will be ignored if the cloud-provider does not support the feature.\\nDeprecated: This field was under-specified and its meaning varies across implementations.\\nUsing it is non-portable and it may not support dual-stack.\\nUsers are encouraged to use implementation-specific annotations when available.\",\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"If specified and supported by the platform, this will restrict traffic through the cloud-provider\\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\\ncloud-provider does not support the feature.\\\"\\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ports\": {\n \"description\": \"The list of ports that are exposed by this service.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"description\": \"ServicePort contains information on service's port.\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port.\\nThis is used as a hint for implementations to offer richer behavior for protocols that they understand.\\nThis field follows standard Kubernetes label syntax.\\nValid values are either:\\n\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per\\nRFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n\\n* Kubernetes-defined prefixed names:\\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n\\n* Other protocols should use implementation-defined prefixed names such as\\nmycompany.com/my-custom-protocol.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL.\\nAll ports within a ServiceSpec must have unique names. When considering\\nthe endpoints for a Service, this must match the 'name' field in the\\nEndpointPort.\\nOptional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"The port on each node on which this service is exposed when type is\\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\\nspecified, in-range, and not in use it will be used, otherwise the\\noperation will fail. If not specified, a port will be allocated if this\\nService requires one. If this field is specified when creating a\\nService which does not need it, creation will fail. This field will be\\nwiped when updating a Service to no longer need it (e.g. changing type\\nfrom NodePort to ClusterIP).\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\".\\nDefault is TCP.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the pods targeted by the service.\\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\\nIf this is a string, it will be looked up as a named port in the\\ntarget Pod's container ports. If this is not specified, the value\\nof the 'port' field is used (an identity map).\\nThis field is ignored for services with clusterIP=None, and should be\\nomitted or set equal to the 'port' field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"port\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this\\nService should disregard any indications of ready/not-ready.\\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\\nServices interpret this to mean that all endpoints are considered \\\"ready\\\" even if the\\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n \"type\": \"boolean\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Route service traffic to pods with label keys and values matching this\\nselector. If empty or not present, the service is assumed to have an\\nexternal process managing its endpoints, which Kubernetes will not\\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\\nIgnored if type is ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity.\\nEnable client IP based session affinity.\\nMust be ClientIP or None.\\nDefaults to None.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time.\\nThe value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\".\\nDefault value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficDistribution\": {\n \"description\": \"TrafficDistribution offers a way to express preferences for how traffic is\\ndistributed to Service endpoints. Implementations can use this field as a\\nhint, but are not required to guarantee strict adherence. If the field is\\nnot set, the implementation will apply its default routing strategy. If set\\nto \\\"PreferClose\\\", implementations should prioritize endpoints that are\\ntopologically close (e.g., same zone).\\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type determines how the Service is exposed. Defaults to ClusterIP. Valid\\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\\n\\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing\\nto endpoints. Endpoints are determined by the selector or if that is not\\nspecified, by manual construction of an Endpoints object or\\nEndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is\\nallocated and the endpoints are published as a set of endpoints rather\\nthan a virtual IP.\\n\\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which\\nroutes to the same endpoints as the clusterIP.\\n\\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer\\n(if supported in the current cloud) which routes to the same endpoints\\nas the clusterIP.\\n\\\"ExternalName\\\" aliases this service to the specified externalName.\\nSeveral other fields do not apply to ExternalName services.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS defines options for configuring TLS for HTTP.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.\\nThe referenced secret should contain the following:\\n\\n\\n- `ca.crt`: The certificate authority (optional).\\n- `tls.crt`: The certificate (or a chain).\\n- `tls.key`: The private key to the first certificate in the certificate chain.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selfSignedCertificate\": {\n \"description\": \"SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled indicates that the provisioning of the self-signed certifcate should be disabled.\",\n \"type\": \"boolean\"\n },\n \"subjectAltNames\": {\n \"description\": \"SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.\",\n \"items\": {\n \"description\": \"SubjectAlternativeName represents a SAN entry in a x509 certificate.\",\n \"properties\": {\n \"dns\": {\n \"description\": \"DNS is the DNS name of the subject.\",\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP is the IP address of the subject.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the Enterprise Search Docker image to deploy.\",\n \"type\": \"string\"\n },\n \"podTemplate\": {\n \"description\": \"PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on)\\nfor the Enterprise Search pods.\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying Deployment.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.\\nCan only be used if ECK is enforcing RBAC on references.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of Enterprise Search.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Enterprise Search\",\n \"type\": \"object\"\n}", + "version": "enterprisesearch.k8s.elastic.co/v1" + }, + "configuration": null, + "description": "", + "displayName": "Enterprise Search", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Kibana.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Kibana.json new file mode 100644 index 00000000000..aa4bde570a7 --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Kibana.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "Kibana", + "schema": "{\n \"description\": \"Kibana represents a Kibana resource in a Kubernetes cluster.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"KibanaSpec holds the specification of a Kibana instance.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the Kibana configuration. See: https://www.elastic.co/guide/en/kibana/current/settings.html\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"count\": {\n \"description\": \"Count of Kibana instances to deploy.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"elasticsearchRef\": {\n \"description\": \"ElasticsearchRef is a reference to an Elasticsearch cluster running in the same Kubernetes cluster.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"enterpriseSearchRef\": {\n \"description\": \"EnterpriseSearchRef is a reference to an EnterpriseSearch running in the same Kubernetes cluster.\\nKibana provides the default Enterprise Search UI starting version 7.14.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http\": {\n \"description\": \"HTTP holds the HTTP layer configuration for Kibana.\",\n \"properties\": {\n \"service\": {\n \"description\": \"Service defines the template for the associated Kubernetes Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the service.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the service.\",\n \"properties\": {\n \"allocateLoadBalancerNodePorts\": {\n \"description\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically\\nallocated for services with type LoadBalancer. Default is \\\"true\\\". It\\nmay be set to \\\"false\\\" if the cluster load-balancer does not rely on\\nNodePorts. If the caller requests specific NodePorts (by specifying a\\nvalue), those requests will be respected, regardless of this field.\\nThis field may only be set for services with type LoadBalancer and will\\nbe cleared if the type is changed to any other type.\",\n \"type\": \"boolean\"\n },\n \"clusterIP\": {\n \"description\": \"clusterIP is the IP address of the service and is usually assigned\\nrandomly. If an address is specified manually, is in-range (as per\\nsystem configuration), and is not in use, it will be allocated to the\\nservice; otherwise creation of the service will fail. This field may not\\nbe changed through updates unless the type field is also being changed\\nto ExternalName (which requires this field to be blank) or the type\\nfield is being changed from ExternalName (in which case this field may\\noptionally be specified, as describe above). Valid values are \\\"None\\\",\\nempty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a\\n\\\"headless service\\\" (no virtual IP), which is useful when direct endpoint\\nconnections are preferred and proxying is not required. Only applies to\\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\\nwhen creating a Service of type ExternalName, creation will fail. This\\nfield will be wiped when updating a Service to type ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"clusterIPs\": {\n \"description\": \"ClusterIPs is a list of IP addresses assigned to this service, and are\\nusually assigned randomly. If an address is specified manually, is\\nin-range (as per system configuration), and is not in use, it will be\\nallocated to the service; otherwise creation of the service will fail.\\nThis field may not be changed through updates unless the type field is\\nalso being changed to ExternalName (which requires this field to be\\nempty) or the type field is being changed from ExternalName (in which\\ncase this field may optionally be specified, as describe above). Valid\\nvalues are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting\\nthis to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is\\nuseful when direct endpoint connections are preferred and proxying is\\nnot required. Only applies to types ClusterIP, NodePort, and\\nLoadBalancer. If this field is specified when creating a Service of type\\nExternalName, creation will fail. This field will be wiped when updating\\na Service to type ExternalName. If this field is not specified, it will\\nbe initialized from the clusterIP field. If this field is specified,\\nclients must ensure that clusterIPs[0] and clusterIP have the same\\nvalue.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\\nThese IPs must correspond to the values of the ipFamilies field. Both\\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalIPs\": {\n \"description\": \"externalIPs is a list of IP addresses for which nodes in the cluster\\nwill also accept traffic for this service. These IPs are not managed by\\nKubernetes. The user is responsible for ensuring that traffic arrives\\nat a node with this IP. A common example is external load-balancers\\nthat are not part of the Kubernetes system.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalName\": {\n \"description\": \"externalName is the external reference that discovery mechanisms will\\nreturn as an alias for this service (e.g. a DNS CNAME record). No\\nproxying will be involved. Must be a lowercase RFC-1123 hostname\\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n \"type\": \"string\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts,\\nExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure\\nthe service in a way that assumes that external load balancers will take care\\nof balancing the service traffic between nodes, and so each node will deliver\\ntraffic only to the node-local endpoints of the service, without masquerading\\nthe client source IP. (Traffic mistakenly sent to a node with no endpoints will\\nbe dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of\\nrouting to all endpoints evenly (possibly modified by topology and other\\nfeatures). Note that traffic sent to an External IP or LoadBalancer IP from\\nwithin the cluster will always get \\\"Cluster\\\" semantics, but clients sending to\\na NodePort from within the cluster may need to take traffic policy into account\\nwhen picking a node.\",\n \"type\": \"string\"\n },\n \"healthCheckNodePort\": {\n \"description\": \"healthCheckNodePort specifies the healthcheck nodePort for the service.\\nThis only applies when type is set to LoadBalancer and\\nexternalTrafficPolicy is set to Local. If a value is specified, is\\nin-range, and is not in use, it will be used. If not specified, a value\\nwill be automatically allocated. External systems (e.g. load-balancers)\\ncan use this port to determine if a given node holds endpoints for this\\nservice or not. If this field is specified when creating a Service\\nwhich does not need it, creation will fail. This field will be wiped\\nwhen updating a Service to no longer need it (e.g. changing type).\\nThis field cannot be updated once set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"internalTrafficPolicy\": {\n \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods\\nonly want to talk to endpoints of the service on the same node as the pod,\\ndropping the traffic if there are no local endpoints. The default value,\\n\\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly\\n(possibly modified by topology and other features).\",\n \"type\": \"string\"\n },\n \"ipFamilies\": {\n \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\\nservice. This field is usually assigned automatically based on cluster\\nconfiguration and the ipFamilyPolicy field. If this field is specified\\nmanually, the requested family is available in the cluster,\\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\\nthe service will fail. This field is conditionally mutable: it allows\\nfor adding or removing a secondary IP family, but it does not allow\\nchanging the primary IP family of the Service. Valid values are \\\"IPv4\\\"\\nand \\\"IPv6\\\". This field only applies to Services of types ClusterIP,\\nNodePort, and LoadBalancer, and does apply to \\\"headless\\\" services.\\nThis field will be wiped when updating a Service to type ExternalName.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack families, in\\neither order). These families must correspond to the values of the\\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\\ngoverned by the ipFamilyPolicy field.\",\n \"items\": {\n \"description\": \"IPFamily represents the IP Family (IPv4 or IPv6). This type is used\\nto express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by\\nthis Service. If there is no value provided, then this field will be set\\nto SingleStack. Services can be \\\"SingleStack\\\" (a single IP family),\\n\\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or\\na single IP family on single-stack clusters), or \\\"RequireDualStack\\\"\\n(two IP families on dual-stack configured clusters, otherwise fail). The\\nipFamilies and clusterIPs fields depend on the value of this field. This\\nfield will be wiped when updating a service to type ExternalName.\",\n \"type\": \"string\"\n },\n \"loadBalancerClass\": {\n \"description\": \"loadBalancerClass is the class of the load balancer implementation this Service belongs to.\\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\\ne.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users.\\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\\nbalancer implementation is used, today this is typically done through the cloud provider integration,\\nbut should apply for any default implementation. If set, it is assumed that a load balancer\\nimplementation is watching for Services with a matching class. Any default load balancer\\nimplementation (e.g. cloud providers) should ignore Services that set this field.\\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n \"type\": \"string\"\n },\n \"loadBalancerIP\": {\n \"description\": \"Only applies to Service Type: LoadBalancer.\\nThis feature depends on whether the underlying cloud-provider supports specifying\\nthe loadBalancerIP when a load balancer is created.\\nThis field will be ignored if the cloud-provider does not support the feature.\\nDeprecated: This field was under-specified and its meaning varies across implementations.\\nUsing it is non-portable and it may not support dual-stack.\\nUsers are encouraged to use implementation-specific annotations when available.\",\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"If specified and supported by the platform, this will restrict traffic through the cloud-provider\\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\\ncloud-provider does not support the feature.\\\"\\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ports\": {\n \"description\": \"The list of ports that are exposed by this service.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"description\": \"ServicePort contains information on service's port.\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port.\\nThis is used as a hint for implementations to offer richer behavior for protocols that they understand.\\nThis field follows standard Kubernetes label syntax.\\nValid values are either:\\n\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per\\nRFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n\\n* Kubernetes-defined prefixed names:\\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n\\n* Other protocols should use implementation-defined prefixed names such as\\nmycompany.com/my-custom-protocol.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL.\\nAll ports within a ServiceSpec must have unique names. When considering\\nthe endpoints for a Service, this must match the 'name' field in the\\nEndpointPort.\\nOptional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"The port on each node on which this service is exposed when type is\\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\\nspecified, in-range, and not in use it will be used, otherwise the\\noperation will fail. If not specified, a port will be allocated if this\\nService requires one. If this field is specified when creating a\\nService which does not need it, creation will fail. This field will be\\nwiped when updating a Service to no longer need it (e.g. changing type\\nfrom NodePort to ClusterIP).\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\".\\nDefault is TCP.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the pods targeted by the service.\\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\\nIf this is a string, it will be looked up as a named port in the\\ntarget Pod's container ports. If this is not specified, the value\\nof the 'port' field is used (an identity map).\\nThis field is ignored for services with clusterIP=None, and should be\\nomitted or set equal to the 'port' field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"port\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this\\nService should disregard any indications of ready/not-ready.\\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\\nServices interpret this to mean that all endpoints are considered \\\"ready\\\" even if the\\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n \"type\": \"boolean\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Route service traffic to pods with label keys and values matching this\\nselector. If empty or not present, the service is assumed to have an\\nexternal process managing its endpoints, which Kubernetes will not\\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\\nIgnored if type is ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity.\\nEnable client IP based session affinity.\\nMust be ClientIP or None.\\nDefaults to None.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time.\\nThe value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\".\\nDefault value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficDistribution\": {\n \"description\": \"TrafficDistribution offers a way to express preferences for how traffic is\\ndistributed to Service endpoints. Implementations can use this field as a\\nhint, but are not required to guarantee strict adherence. If the field is\\nnot set, the implementation will apply its default routing strategy. If set\\nto \\\"PreferClose\\\", implementations should prioritize endpoints that are\\ntopologically close (e.g., same zone).\\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type determines how the Service is exposed. Defaults to ClusterIP. Valid\\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\\n\\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing\\nto endpoints. Endpoints are determined by the selector or if that is not\\nspecified, by manual construction of an Endpoints object or\\nEndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is\\nallocated and the endpoints are published as a set of endpoints rather\\nthan a virtual IP.\\n\\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which\\nroutes to the same endpoints as the clusterIP.\\n\\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer\\n(if supported in the current cloud) which routes to the same endpoints\\nas the clusterIP.\\n\\\"ExternalName\\\" aliases this service to the specified externalName.\\nSeveral other fields do not apply to ExternalName services.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS defines options for configuring TLS for HTTP.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.\\nThe referenced secret should contain the following:\\n\\n\\n- `ca.crt`: The certificate authority (optional).\\n- `tls.crt`: The certificate (or a chain).\\n- `tls.key`: The private key to the first certificate in the certificate chain.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selfSignedCertificate\": {\n \"description\": \"SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled indicates that the provisioning of the self-signed certifcate should be disabled.\",\n \"type\": \"boolean\"\n },\n \"subjectAltNames\": {\n \"description\": \"SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.\",\n \"items\": {\n \"description\": \"SubjectAlternativeName represents a SAN entry in a x509 certificate.\",\n \"properties\": {\n \"dns\": {\n \"description\": \"DNS is the DNS name of the subject.\",\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP is the IP address of the subject.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the Kibana Docker image to deploy.\",\n \"type\": \"string\"\n },\n \"monitoring\": {\n \"description\": \"Monitoring enables you to collect and ship log and monitoring data of this Kibana.\\nSee https://www.elastic.co/guide/en/kibana/current/xpack-monitoring.html.\\nMetricbeat and Filebeat are deployed in the same Pod as sidecars and each one sends data to one or two different\\nElasticsearch monitoring clusters running in the same Kubernetes cluster.\",\n \"properties\": {\n \"logs\": {\n \"description\": \"Logs holds references to Elasticsearch clusters which receive log data from an associated resource.\",\n \"properties\": {\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single Elasticsearch cluster is currently supported.\",\n \"items\": {\n \"description\": \"ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator\\nor a Secret describing an external Elastic resource not managed by the operator.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"metrics\": {\n \"description\": \"Metrics holds references to Elasticsearch clusters which receive monitoring data from this resource.\",\n \"properties\": {\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single Elasticsearch cluster is currently supported.\",\n \"items\": {\n \"description\": \"ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator\\nor a Secret describing an external Elastic resource not managed by the operator.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podTemplate\": {\n \"description\": \"PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the Kibana pods\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying Deployment.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"secureSettings\": {\n \"description\": \"SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for Kibana.\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.\\nCan only be used if ECK is enforcing RBAC on references.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of Kibana.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kibana\",\n \"type\": \"object\"\n}", + "version": "kibana.k8s.elastic.co/v1" + }, + "configuration": null, + "description": "", + "displayName": "Kibana", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Logstash.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Logstash.json new file mode 100644 index 00000000000..be7927d1445 --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/Logstash.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Logstash", + "schema": "{\n \"description\": \"Logstash is the Schema for the logstashes API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"LogstashSpec defines the desired state of Logstash\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the Logstash configuration. At most one of [`Config`, `ConfigRef`] can be specified.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"configRef\": {\n \"description\": \"ConfigRef contains a reference to an existing Kubernetes Secret holding the Logstash configuration.\\nLogstash settings must be specified as yaml, under a single \\\"logstash.yml\\\" entry. At most one of [`Config`, `ConfigRef`]\\ncan be specified.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"count\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs are references to Elasticsearch clusters running in the same Kubernetes cluster.\",\n \"items\": {\n \"description\": \"ElasticsearchCluster is a named reference to an Elasticsearch cluster which can be used in a Logstash pipeline.\",\n \"properties\": {\n \"clusterName\": {\n \"description\": \"ClusterName is an alias for the cluster to be used to refer to the Elasticsearch cluster in Logstash\\nconfiguration files, and will be used to identify \\\"named clusters\\\" in Logstash\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Image is the Logstash Docker image to deploy. Version and Type have to match the Logstash in the image.\",\n \"type\": \"string\"\n },\n \"monitoring\": {\n \"description\": \"Monitoring enables you to collect and ship log and monitoring data of this Logstash.\\nMetricbeat and Filebeat are deployed in the same Pod as sidecars and each one sends data to one or two different\\nElasticsearch monitoring clusters running in the same Kubernetes cluster.\",\n \"properties\": {\n \"logs\": {\n \"description\": \"Logs holds references to Elasticsearch clusters which receive log data from an associated resource.\",\n \"properties\": {\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single Elasticsearch cluster is currently supported.\",\n \"items\": {\n \"description\": \"ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator\\nor a Secret describing an external Elastic resource not managed by the operator.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"metrics\": {\n \"description\": \"Metrics holds references to Elasticsearch clusters which receive monitoring data from this resource.\",\n \"properties\": {\n \"elasticsearchRefs\": {\n \"description\": \"ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.\\nDue to existing limitations, only a single Elasticsearch cluster is currently supported.\",\n \"items\": {\n \"description\": \"ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator\\nor a Secret describing an external Elastic resource not managed by the operator.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Kubernetes object. If empty, defaults to the current namespace.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of an existing Kubernetes secret that contains connection information for associating an\\nElastic resource not managed by the operator. The referenced secret must contain the following:\\n- `url`: the URL to reach the Elastic resource\\n- `username`: the username of the user to be authenticated to the Elastic resource\\n- `password`: the password of the user to be authenticated to the Elastic resource\\n- `ca.crt`: the CA certificate in PEM format (optional)\\n- `api-key`: the key to authenticate against the Elastic resource instead of a username and password (supported only for `elasticsearchRefs` in AgentSpec and in BeatSpec)\\nThis field cannot be used in combination with the other fields name, namespace or serviceName.\",\n \"type\": \"string\"\n },\n \"serviceName\": {\n \"description\": \"ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced\\nobject. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of\\nthe referenced resource is used.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pipelines\": {\n \"description\": \"Pipelines holds the Logstash Pipelines. At most one of [`Pipelines`, `PipelinesRef`] can be specified.\",\n \"format\": \"textarea\",\n \"items\": {\n \"type\": \"object\"\n },\n \"type\": \"string\"\n },\n \"pipelinesRef\": {\n \"description\": \"PipelinesRef contains a reference to an existing Kubernetes Secret holding the Logstash Pipelines.\\nLogstash pipelines must be specified as yaml, under a single \\\"pipelines.yml\\\" entry. At most one of [`Pipelines`, `PipelinesRef`]\\ncan be specified.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"podTemplate\": {\n \"description\": \"PodTemplate provides customisation options for the Logstash pods.\",\n \"format\": \"textarea\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to\\nStartTime before the system will actively try to mark it failed and kill associated containers.\\nValue must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod.\\nContainers cannot currently be added or removed.\\nThere must be at least one container in a Pod.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod.\\nParameters specified here will be merged to the generated DNS\\nconfiguration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses.\\nThis will be appended to the base nameservers generated from DNSPolicy.\\nDuplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nDuplicated entries will be removed. Resolution options given in Options\\nwill override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup.\\nThis will be appended to the base search paths generated from DNSPolicy.\\nDuplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod.\\nDefaults to \\\"ClusterFirst\\\".\\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\\nexplicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's\\nenvironment variables, matching the syntax of Docker links.\\nOptional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\\npod to perform user-initiated actions such as debugging. This list cannot be specified when\\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a temporary container that you may add to an existing Pod for\\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\\nPod to exceed its resource allocation.\\n\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\\nPod. Ephemeral containers may not be removed or restarted.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL.\\nThis name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\\nalready allocated to the pod.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for the container to manage the restart behavior of each\\ncontainer within a pod.\\nThis may only be set for init containers. You cannot set this field on\\nephemeral containers.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets.\\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\n\\nThe container runtime must implement support for this feature. If the runtime does not\\nsupport namespace targeting then the result of setting this field is undefined.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\\nfile if specified.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\\npod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"ip\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace.\\nIf this option is set, the ports that will be used must be specified.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"description\": \"Use the host's user namespace.\\nOptional: Default to true.\\nIf set to true or not present, the pod will be run in the host user namespace, useful\\nfor when the pod needs a feature only available to the host user namespace, such as\\nloading a kernel module with CAP_SYS_MODULE.\\nWhen set to false, a new userns is created for the pod. Setting false is useful for\\nmitigating container breakout vulnerabilities even allowing users to run their\\ncontainers as root without actually having root privileges on the host.\\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod\\nIf not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\\nIf specified, these secrets will be passed to individual puller implementations for them to use.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod.\\nInit containers are executed in order prior to containers being started. If any\\ninit container fails, the pod is considered to have failed and is handled according\\nto its restartPolicy. The name for an init container or normal container must be\\nunique among all containers.\\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\\nThe resourceRequirements of an init container are taken into account during scheduling\\nby finding the highest request/limit for each resource type, and then using the max of\\nof that value or the sum of the normal containers. Limits are applied to init containers\\nin a similar fashion.\\nInit containers cannot currently be added or removed.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint.\\nThe container image's CMD is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell.\\nThe container image's ENTRYPOINT is used if this is not provided.\\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will\\nproduce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless\\nof whether the variable exists or not. Cannot be updated.\\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded\\nusing the previously defined environment variables in the container and\\nany service environment variables. If a variable cannot be resolved,\\nthe reference in the input string will be unchanged. Double $$ are reduced\\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\\n\\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\".\\nEscaped references will never be expanded, regardless of whether the variable\\nexists or not.\\nDefaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container.\\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\\nwill be reported as an event when the container is starting. When a key exists in multiple\\nsources, the value associated with the last source will take precedence.\\nValues defined by an Env with a duplicate key will take precedence.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"description\": \"Container image name.\\nMore info: https://kubernetes.io/docs/concepts/containers/images\\nThis field is optional to allow higher level config management to default or override\\ncontainer images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, Never, IfNotPresent.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events.\\nCannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails,\\nthe container is terminated and restarted according to its restart policy.\\nOther management of the container blocks until the hook completes.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an\\nAPI request or management event such as liveness/startup probe failure,\\npreemption, resource contention, etc. The handler is not called if the\\ncontainer crashes or exits. The Pod's termination grace period countdown begins before the\\nPreStop hook is executed. Regardless of the outcome of the handler, the\\ncontainer will eventually terminate within the Pod's termination grace\\nperiod (unless delayed by finalizers). Other management of the container blocks until the hook completes\\nor until the termination grace period is reached.\\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"description\": \"Sleep represents the duration that the container should sleep before being terminated.\",\n \"properties\": {\n \"seconds\": {\n \"description\": \"Seconds is the number of seconds to sleep.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\\nfor the backward compatibility. There are no validation of this field and\\nlifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness.\\nContainer will be restarted if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL.\\nEach container in a pod must have a unique name (DNS_LABEL).\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Not specifying a port here\\nDOES NOT prevent that port from being exposed. Any port which is\\nlistening on the default \\\"0.0.0.0\\\" address inside a container will be\\naccessible from the network.\\nModifying this array with strategic merge patch may corrupt the data.\\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness.\\nContainer will be removed from service endpoints if the probe fails.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"description\": \"Resources resize policy for the container.\",\n \"items\": {\n \"description\": \"ContainerResizePolicy represents resource resize policy for the container.\",\n \"properties\": {\n \"resourceName\": {\n \"description\": \"Name of the resource to which this resource resize policy applies.\\nSupported values: cpu, memory.\",\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy to apply when specified resource is resized.\\nIf not specified, it defaults to NotRequired.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container.\\nCannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"description\": \"RestartPolicy defines the restart behavior of individual containers in a pod.\\nThis field may only be set for init containers, and the only allowed value is \\\"Always\\\".\\nFor non-init containers or when this field is not specified,\\nthe restart behavior is defined by the Pod's restart policy and the container type.\\nSetting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect:\\nthis init container will be continually restarted on\\nexit until all regular containers have terminated. Once all regular\\ncontainers have completed, all init containers with restartPolicy \\\"Always\\\"\\nwill be shut down. This lifecycle differs from normal init containers and\\nis often referred to as a \\\"sidecar\\\" container. Although this init\\ncontainer still starts in the init container sequence, it does not wait\\nfor the container to complete before proceeding to the next init\\ncontainer. Instead, the next init container starts immediately after this\\ninit container is started, or after any startupProbe has successfully\\ncompleted.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with.\\nIf set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more\\nprivileges than its parent process. This bool directly controls if\\nthe no_new_privs flag will be set on the container process.\\nAllowPrivilegeEscalation is true always when the container is:\\n1) run as Privileged\\n2) has CAP_SYS_ADMIN\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by this container. If set, this profile\\noverrides the pod's appArmorProfile.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers.\\nDefaults to the default set of capabilities granted by the container runtime.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode.\\nProcesses in privileged containers are essentially equivalent to root on the host.\\nDefaults to false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers.\\nThe default is DefaultProcMount which uses the container runtime defaults for\\nreadonly paths and masked paths.\\nThis requires the ProcMountType feature flag to be enabled.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem.\\nDefault is false.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are\\nprovided at both the pod \\u0026 container level, the container options\\noverride the pod options.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options from the PodSecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized.\\nIf specified, no other probes are executed until this completes successfully.\\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\\nThis cannot be updated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this\\nis not set, reads from stdin in the container will always result in EOF.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by\\na single attach. When stdin is true the stdin stream will remain open across multiple attach\\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\\nat which time stdin is closed and remains closed until the container is restarted. If this\\nflag is false, a container processes that reads from stdin will never receive an EOF.\\nDefault is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message\\nwill be written is mounted into the container's filesystem.\\nMessage written is intended to be brief final status, such as an assertion failure message.\\nWill be truncated by the node if greater than 4096 bytes. The total message length across\\nall containers will be limited to 12kb.\\nDefaults to /dev/termination-log.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of\\nterminationMessagePath to populate the container status message on both success and failure.\\nFallbackToLogsOnError will use the last chunk of container log output if the termination\\nmessage file is empty and the container exited with an error.\\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\\nDefaults to File.\\nCannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\\nDefault is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem.\\nCannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must\\nnot contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host\\nto container and the other way around.\\nWhen not set, MountPropagationNone is used.\\nThis field is beta in 1.10.\\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\\n(which defaults to None).\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified).\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"description\": \"RecursiveReadOnly specifies whether read-only mounts should be handled\\nrecursively.\\n\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\\nrecursively read-only. If this field is set to IfPossible, the mount is made\\nrecursively read-only, if it is supported by the container runtime. If this\\nfield is set to Enabled, the mount is made recursively read-only if it is\\nsupported by the container runtime, otherwise the pod will not be started and\\nan error will be generated to indicate the reason.\\n\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\n\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n \"type\": \"string\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted.\\nDefaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted.\\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\\nDefaults to \\\"\\\" (volume's root).\\nSubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory.\\nIf not specified, the container runtime's default will be used, which\\nmight be configured in the container image.\\nCannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\\nrequirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node.\\nSelector which must match a node's labels for the pod to be scheduled on that node.\\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"description\": \"Specifies the OS of the containers in the pod.\\nSome pod and container fields are restricted if this is set.\\n\\n\\nIf the OS field is set to linux, the following fields must be unset:\\n-securityContext.windowsOptions\\n\\n\\nIf the OS field is set to windows, following fields must be unset:\\n- spec.hostPID\\n- spec.hostIPC\\n- spec.hostUsers\\n- spec.securityContext.appArmorProfile\\n- spec.securityContext.seLinuxOptions\\n- spec.securityContext.seccompProfile\\n- spec.securityContext.fsGroup\\n- spec.securityContext.fsGroupChangePolicy\\n- spec.securityContext.sysctls\\n- spec.shareProcessNamespace\\n- spec.securityContext.runAsUser\\n- spec.securityContext.runAsGroup\\n- spec.securityContext.supplementalGroups\\n- spec.containers[*].securityContext.appArmorProfile\\n- spec.containers[*].securityContext.seLinuxOptions\\n- spec.containers[*].securityContext.seccompProfile\\n- spec.containers[*].securityContext.capabilities\\n- spec.containers[*].securityContext.readOnlyRootFilesystem\\n- spec.containers[*].securityContext.privileged\\n- spec.containers[*].securityContext.allowPrivilegeEscalation\\n- spec.containers[*].securityContext.procMount\\n- spec.containers[*].securityContext.runAsUser\\n- spec.containers[*].securityContext.runAsGroup\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows.\\nAdditional value may be defined in future and can be one of:\\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\\nClients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority.\\nOne of Never, PreemptLowerPriority.\\nDefaults to PreemptLowerPriority if unset.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the\\npriority of the pod. When Priority Admission Controller is enabled, it\\nprevents users from setting this field. The admission controller populates\\nthis field from PriorityClassName.\\nThe higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and\\n\\\"system-cluster-critical\\\" are two special keywords which indicate the\\nhighest priorities with the former being the highest priority. Any other\\nname must be defined by creating a PriorityClass object with that name.\\nIf not specified, the pod priority will be default or zero if there is no\\ndefault.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness.\\nA pod is ready when all its containers are ready AND\\nall conditions specified in the readiness gates have status equal to \\\"True\\\"\\nMore info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resourceClaims\": {\n \"description\": \"ResourceClaims defines which ResourceClaims must be allocated\\nand reserved before the Pod is allowed to start. The resources\\nwill be made available to those containers which consume them\\nby name.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable.\",\n \"items\": {\n \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource.\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\\nContainers that need access to the ResourceClaim reference it with this name.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name uniquely identifies this resource claim inside the pod.\\nThis must be a DNS_LABEL.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Source describes where to find the ResourceClaim.\",\n \"properties\": {\n \"resourceClaimName\": {\n \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same\\nnamespace as this pod.\",\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate\\nobject in the same namespace as this pod.\\n\\n\\nThe template will be used to create a new ResourceClaim, which will\\nbe bound to this pod. When this pod is deleted, the ResourceClaim\\nwill also be deleted. The pod name and resource name, along with a\\ngenerated component, will be used to form a unique name for the\\nResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\n\\nThis field is immutable and no changes will be made to the\\ncorresponding ResourceClaim by the control plane after creating the\\nResourceClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod.\\nOne of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\\nDefault to Always.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\\nIf unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an\\nempty definition that uses the default runtime handler.\\nMore info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler.\\nIf not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\\nscheduler will not attempt to schedule the pod.\\n\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n \"items\": {\n \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the scheduling gate.\\nEach scheduling gate must have a unique name field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nOptional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"description\": \"appArmorProfile is the AppArmor options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile loaded on the node that should be used.\\nThe profile must be preconfigured on the node to work.\\nMust match the loaded name of the profile.\\nMust be set if and only if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of AppArmor profile will be applied.\\nValid options are:\\n Localhost - a profile pre-loaded on the node.\\n RuntimeDefault - the container runtime's default profile.\\n Unconfined - no AppArmor enforcement.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod.\\nSome volume types allow the Kubelet to change the ownership of that volume\\nto be owned by the pod:\\n\\n\\n1. The owning GID will be the FSGroup\\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\\n3. The permission bits are OR'd with rw-rw----\\n\\n\\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\\nbefore being exposed inside Pod. This field will only apply to\\nvolume types which support fsGroup based ownership(and permissions).\\nIt will have no effect on ephemeral volume types such as: secret, configmaps\\nand emptydir.\\nValid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process.\\nUses runtime default if unset.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user.\\nIf true, the Kubelet will validate the image at runtime to ensure that it\\ndoes not run as UID 0 (root) and fail to start the container if it does.\\nIf unset or false, no such validation will be performed.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process.\\nDefaults to user specified in image metadata if unspecified.\\nMay also be set in SecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence\\nfor that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers.\\nIf unspecified, the container runtime will allocate a random SELinux context for each\\ncontainer. May also be set in SecurityContext. If set in\\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\\ntakes precedence for that container.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used.\\nThe profile must be preconfigured on the node to work.\\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\\nMust be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied.\\nValid options are:\\n\\n\\nLocalhost - a profile defined in a file on the node should be used.\\nRuntimeDefault - the container runtime default profile should be used.\\nUnconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition\\nto the container's primary GID, the fsGroup (if specified), and group memberships\\ndefined in the container image for the uid of the container process. If unspecified,\\nno additional groups are added to any container. Note that group memberships\\ndefined in the container image for the uid of the container process are still effective,\\neven if they are not included in this list.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\\nsysctls (by the container runtime) might fail to launch.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers.\\nIf unspecified, the options within a container's SecurityContext will be used.\\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\\nNote that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook\\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\\nGMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container.\\nAll of a Pod's containers must have the same effective HostProcess value\\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\\nIn addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process.\\nDefaults to the user specified in image metadata if unspecified.\\nMay also be set in PodSecurityContext. If set in both SecurityContext and\\nPodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\\nDeprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod.\\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN.\\nIf a pod does not have FQDN, this has no effect.\\nDefault to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod.\\nWhen this is set containers will be able to view and signal processes from other containers\\nin the same pod, and the first process in each container will not be assigned PID 1.\\nHostPID and ShareProcessNamespace cannot both be set.\\nOptional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\".\\nIf not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nIf this value is nil, the default grace period will be used instead.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nDefaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology\\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\\nAll topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods.\\nPods that match this label selector are counted to determine the number of pods\\nin their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which\\nspreading will be calculated. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are ANDed with labelSelector\\nto select the group of existing pods over which spreading will be calculated\\nfor the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\\nMatchLabelKeys cannot be set when LabelSelector isn't set.\\nKeys that don't exist in the incoming pod labels will\\nbe ignored. A null or empty list means only match against labelSelector.\\n\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed.\\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\\nbetween the number of matching pods in the target topology and the global minimum.\\nThe global minimum is the minimum number of matching pods in an eligible domain\\nor zero if the number of eligible domains is less than MinDomains.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 2/2/1:\\nIn this case, the global minimum is 1.\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P |\\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\\nscheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\\nviolate MaxSkew(1).\\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\\nto topologies that satisfy it.\\nIt's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains.\\nWhen the number of eligible domains with matching topology keys is less than minDomains,\\nPod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed.\\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\\nthis value has no effect on scheduling.\\nAs a result, when the number of eligible domains is less than minDomains,\\nscheduler won't schedule more than maxSkew Pods to those domains.\\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\\nValid values are integers greater than 0.\\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\\nlabelSelector spread as 2/2/2:\\n| zone1 | zone2 | zone3 |\\n| P P | P P | P P |\\nThe number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0.\\nIn this situation, new pod with the same labelSelector cannot be scheduled,\\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\\nit will violate MaxSkew.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\\nwhen calculating pod topology spread skew. Options are:\\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating\\npod topology spread skew. Options are:\\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\\nhas a toleration, are included.\\n- Ignore: node taints are ignored. All nodes are included.\\n\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy.\\nThis is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key\\nand identical values are considered to be in the same topology.\\nWe consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number\\nof pods into each bucket.\\nWe define a domain as a particular instance of a topology.\\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\\nnodeAffinityPolicy and nodeTaintsPolicy.\\ne.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology.\\nAnd, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology.\\nIt's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\\nthe spread constraint.\\n- DoNotSchedule (default) tells the scheduler not to schedule it.\\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n but giving higher precedence to topologies that would help reduce the\\n skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod\\nif and only if every possible node assignment for that pod would violate\\n\\\"MaxSkew\\\" on some topology.\\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\\nlabelSelector spread as 3/1/1:\\n| zone1 | zone2 | zone3 |\\n| P P P | P | P |\\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\\nwon't make it *more* imbalanced.\\nIt's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin\\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect\\nto OpenStack.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder.\\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume.\\nConsult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nIf not provided, the empty value is passed to the associated CSI driver\\nwhich will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing\\nsensitive information to pass to the CSI driver to complete the CSI\\nNodePublishVolume and NodeUnpublishVolume calls.\\nThis field is optional, and may be empty if no secret is required. If the\\nsecret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume.\\nDefaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI\\ndriver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a\\nOptional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDefaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver.\\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\\nand deleted when the pod is removed.\\n\\n\\nUse this if:\\na) the volume is only needed while the pod runs,\\nb) features of normal volumes like restoring from snapshot or capacity\\n tracking are needed,\\nc) the storage driver is specified through a storage class, and\\nd) the storage driver supports dynamic volume provisioning through\\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n information on the connection between this volume type\\n and PersistentVolumeClaim).\\n\\n\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\n\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\\nbe used that way - see the documentation of the driver for\\nmore information.\\n\\n\\nA pod can use both types of ephemeral volumes and\\npersistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume.\\nThe pod in which this EphemeralVolumeSource is embedded will be the\\nowner of the PVC, i.e. the PVC will be deleted together with the\\npod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where\\n`\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array\\nentry. Pod validation will reject the pod if the concatenated name\\nis not valid for a PVC (for example, too long).\\n\\n\\nAn existing PVC with that name that is not owned by the pod\\nwill *not* be used for the pod to avoid using an unrelated\\nvolume by mistake. Starting the pod is then blocked until\\nthe unrelated PVC is removed. If such a pre-created PVC is\\nmeant to be used by the pod, the PVC has to updated with an\\nowner reference to the pod once the pod exists. Normally\\nthis should not be necessary, but it may be useful when\\nmanually reconstructing a broken cluster.\\n\\n\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\n\\n\\nRequired, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids)\\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is\\nprovisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing\\nsensitive information to pass to the plugin scripts. This may be\\nempty if no secret object is specified. If the secret object\\ncontains more than one secret, all secrets are passed to the plugin\\nscripts.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker\\nshould be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount.\\nIf omitted, the default is to mount by volume name.\\nExamples: For volume /dev/sda1, you specify the partition as \\\"1\\\".\\nSimilarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision.\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\\ninto the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name.\\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\\ngit repository. Otherwise, if specified, the volume will contain the git repository in\\nthe subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a\\nkubelet's host machine and then exposed to the pod.\\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name.\\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\\n\\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport.\\nDefaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\\nis other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume.\\nMust be a DNS_LABEL and unique within the pod.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions.\\nDefaults to false.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a\\nPersistentVolumeClaim in the same namespace.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts.\\nDefault false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\\nof ClusterTrustBundle objects in an auto-updating file.\\n\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\n\\n\\nKubelet performs aggressive normalization of the PEM contents written\\ninto the pod filesystem. Esoteric PEM features such as inter-block\\ncomments and block headers are stripped. Certificates are deduplicated.\\nThe ordering of certificates within the file is arbitrary, and Kubelet\\nmay change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has\\neffect if signerName is set. Mutually-exclusive with name. If unset,\\ninterpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match\\neverything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive\\nwith signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s)\\naren't available. If using name, then the named ClusterTrustBundle is\\nallowed not to exist. If using signerName, then the combination of\\nsignerName and labelSelector is allowed to match zero\\nClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name.\\nMutually-exclusive with name. The contents of all selected\\nClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nConfigMap will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the ConfigMap,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value\\nbetween 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests\\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token\\nmust identify itself with an identifier specified in the audience of the\\ntoken, and otherwise should reject the token. The audience defaults to the\\nidentifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service\\naccount token. As the token approaches expiration, the kubelet volume\\nplugin will proactively rotate the service account token. The kubelet will\\nstart trying to rotate the token if the token is older than 80 percent of\\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\\nand must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the\\ntoken into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to\\nDefault is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions.\\nDefaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services\\nspecified as a string as host:port pair (multiple entries are separated with commas)\\nwhich acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend\\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to\\nDefaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount.\\nTip: Ensure that the filesystem type is supported by the host operating system.\\nExamples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\\nTODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser.\\nDefault is /etc/ceph/keyring.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name.\\nDefault is rbd.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts.\\nDefaults to false.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided\\noverrides keyring.\\nDefault is nil.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"description\": \"user is the rados user name.\\nDefault is admin.\\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\\nDefault is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other\\nsensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\\nDefault is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system\\nthat is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values\\nfor mode bits. Defaults to 0644.\\nDirectories within the path are not affected by this setting.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced\\nSecret will be projected into the volume as a file whose name is the\\nkey and content is the value. If specified, the listed keys will be\\nprojected into the specified paths, and unlisted keys will not be\\npresent. If a key is specified which is not present in the Secret,\\nthe volume setup will error unless it is marked optional. Paths must be\\nrelative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file.\\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\\nIf not specified, the volume defaultMode will be used.\\nThis might be in conflict with other options that affect the file\\nmode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to.\\nMay not be an absolute path.\\nMay not contain the path element '..'.\\nMay not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force\\nthe ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API\\ncredentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"description\": \"Name of the referent.\\nThis field is effectively required, but due to backwards compatibility is\\nallowed to be empty. Instances of this type with an empty value here are\\nalmost certainly wrong.\\nTODO: Add other useful fields. apiVersion, kind, uid?\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume\\nnames are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no\\nnamespace is specified then the Pod's namespace will be used. This allows the\\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\\nSet VolumeName to any name to override the default behaviour.\\nSet to \\\"default\\\" if you are not using namespaces within StorageOS.\\nNamespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount.\\nMust be a filesystem type supported by the host operating system.\\nEx. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying StatefulSet.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"secureSettings\": {\n \"description\": \"SecureSettings is a list of references to Kubernetes Secrets containing sensitive configuration options for the Logstash.\\nSecrets data can be then referenced in the Logstash config using the Secret's keys or as specified in `Entries` field of\\neach SecureSetting.\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is used to check access from the current resource to Elasticsearch resource in a different namespace.\\nCan only be used if ECK is enforcing RBAC on references.\",\n \"type\": \"string\"\n },\n \"services\": {\n \"description\": \"Services contains details of services that Logstash should expose - similar to the HTTP layer configuration for the\\nrest of the stack, but also applicable for more use cases than the metrics API, as logstash may need to\\nbe opened up for other services: Beats, TCP, UDP, etc, inputs.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"service\": {\n \"description\": \"Service defines the template for the associated Kubernetes Service object.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"ObjectMeta is the metadata of the service.\\nThe name and namespace provided here are managed by ECK and will be ignored.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec is the specification of the service.\",\n \"properties\": {\n \"allocateLoadBalancerNodePorts\": {\n \"description\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically\\nallocated for services with type LoadBalancer. Default is \\\"true\\\". It\\nmay be set to \\\"false\\\" if the cluster load-balancer does not rely on\\nNodePorts. If the caller requests specific NodePorts (by specifying a\\nvalue), those requests will be respected, regardless of this field.\\nThis field may only be set for services with type LoadBalancer and will\\nbe cleared if the type is changed to any other type.\",\n \"type\": \"boolean\"\n },\n \"clusterIP\": {\n \"description\": \"clusterIP is the IP address of the service and is usually assigned\\nrandomly. If an address is specified manually, is in-range (as per\\nsystem configuration), and is not in use, it will be allocated to the\\nservice; otherwise creation of the service will fail. This field may not\\nbe changed through updates unless the type field is also being changed\\nto ExternalName (which requires this field to be blank) or the type\\nfield is being changed from ExternalName (in which case this field may\\noptionally be specified, as describe above). Valid values are \\\"None\\\",\\nempty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a\\n\\\"headless service\\\" (no virtual IP), which is useful when direct endpoint\\nconnections are preferred and proxying is not required. Only applies to\\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\\nwhen creating a Service of type ExternalName, creation will fail. This\\nfield will be wiped when updating a Service to type ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"clusterIPs\": {\n \"description\": \"ClusterIPs is a list of IP addresses assigned to this service, and are\\nusually assigned randomly. If an address is specified manually, is\\nin-range (as per system configuration), and is not in use, it will be\\nallocated to the service; otherwise creation of the service will fail.\\nThis field may not be changed through updates unless the type field is\\nalso being changed to ExternalName (which requires this field to be\\nempty) or the type field is being changed from ExternalName (in which\\ncase this field may optionally be specified, as describe above). Valid\\nvalues are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting\\nthis to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is\\nuseful when direct endpoint connections are preferred and proxying is\\nnot required. Only applies to types ClusterIP, NodePort, and\\nLoadBalancer. If this field is specified when creating a Service of type\\nExternalName, creation will fail. This field will be wiped when updating\\na Service to type ExternalName. If this field is not specified, it will\\nbe initialized from the clusterIP field. If this field is specified,\\nclients must ensure that clusterIPs[0] and clusterIP have the same\\nvalue.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\\nThese IPs must correspond to the values of the ipFamilies field. Both\\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalIPs\": {\n \"description\": \"externalIPs is a list of IP addresses for which nodes in the cluster\\nwill also accept traffic for this service. These IPs are not managed by\\nKubernetes. The user is responsible for ensuring that traffic arrives\\nat a node with this IP. A common example is external load-balancers\\nthat are not part of the Kubernetes system.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"externalName\": {\n \"description\": \"externalName is the external reference that discovery mechanisms will\\nreturn as an alias for this service (e.g. a DNS CNAME record). No\\nproxying will be involved. Must be a lowercase RFC-1123 hostname\\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n \"type\": \"string\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts,\\nExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure\\nthe service in a way that assumes that external load balancers will take care\\nof balancing the service traffic between nodes, and so each node will deliver\\ntraffic only to the node-local endpoints of the service, without masquerading\\nthe client source IP. (Traffic mistakenly sent to a node with no endpoints will\\nbe dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of\\nrouting to all endpoints evenly (possibly modified by topology and other\\nfeatures). Note that traffic sent to an External IP or LoadBalancer IP from\\nwithin the cluster will always get \\\"Cluster\\\" semantics, but clients sending to\\na NodePort from within the cluster may need to take traffic policy into account\\nwhen picking a node.\",\n \"type\": \"string\"\n },\n \"healthCheckNodePort\": {\n \"description\": \"healthCheckNodePort specifies the healthcheck nodePort for the service.\\nThis only applies when type is set to LoadBalancer and\\nexternalTrafficPolicy is set to Local. If a value is specified, is\\nin-range, and is not in use, it will be used. If not specified, a value\\nwill be automatically allocated. External systems (e.g. load-balancers)\\ncan use this port to determine if a given node holds endpoints for this\\nservice or not. If this field is specified when creating a Service\\nwhich does not need it, creation will fail. This field will be wiped\\nwhen updating a Service to no longer need it (e.g. changing type).\\nThis field cannot be updated once set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"internalTrafficPolicy\": {\n \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they\\nreceive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods\\nonly want to talk to endpoints of the service on the same node as the pod,\\ndropping the traffic if there are no local endpoints. The default value,\\n\\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly\\n(possibly modified by topology and other features).\",\n \"type\": \"string\"\n },\n \"ipFamilies\": {\n \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\\nservice. This field is usually assigned automatically based on cluster\\nconfiguration and the ipFamilyPolicy field. If this field is specified\\nmanually, the requested family is available in the cluster,\\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\\nthe service will fail. This field is conditionally mutable: it allows\\nfor adding or removing a secondary IP family, but it does not allow\\nchanging the primary IP family of the Service. Valid values are \\\"IPv4\\\"\\nand \\\"IPv6\\\". This field only applies to Services of types ClusterIP,\\nNodePort, and LoadBalancer, and does apply to \\\"headless\\\" services.\\nThis field will be wiped when updating a Service to type ExternalName.\\n\\n\\nThis field may hold a maximum of two entries (dual-stack families, in\\neither order). These families must correspond to the values of the\\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\\ngoverned by the ipFamilyPolicy field.\",\n \"items\": {\n \"description\": \"IPFamily represents the IP Family (IPv4 or IPv6). This type is used\\nto express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\",\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by\\nthis Service. If there is no value provided, then this field will be set\\nto SingleStack. Services can be \\\"SingleStack\\\" (a single IP family),\\n\\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or\\na single IP family on single-stack clusters), or \\\"RequireDualStack\\\"\\n(two IP families on dual-stack configured clusters, otherwise fail). The\\nipFamilies and clusterIPs fields depend on the value of this field. This\\nfield will be wiped when updating a service to type ExternalName.\",\n \"type\": \"string\"\n },\n \"loadBalancerClass\": {\n \"description\": \"loadBalancerClass is the class of the load balancer implementation this Service belongs to.\\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\\ne.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users.\\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\\nbalancer implementation is used, today this is typically done through the cloud provider integration,\\nbut should apply for any default implementation. If set, it is assumed that a load balancer\\nimplementation is watching for Services with a matching class. Any default load balancer\\nimplementation (e.g. cloud providers) should ignore Services that set this field.\\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n \"type\": \"string\"\n },\n \"loadBalancerIP\": {\n \"description\": \"Only applies to Service Type: LoadBalancer.\\nThis feature depends on whether the underlying cloud-provider supports specifying\\nthe loadBalancerIP when a load balancer is created.\\nThis field will be ignored if the cloud-provider does not support the feature.\\nDeprecated: This field was under-specified and its meaning varies across implementations.\\nUsing it is non-portable and it may not support dual-stack.\\nUsers are encouraged to use implementation-specific annotations when available.\",\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"If specified and supported by the platform, this will restrict traffic through the cloud-provider\\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\\ncloud-provider does not support the feature.\\\"\\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ports\": {\n \"description\": \"The list of ports that are exposed by this service.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"items\": {\n \"description\": \"ServicePort contains information on service's port.\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port.\\nThis is used as a hint for implementations to offer richer behavior for protocols that they understand.\\nThis field follows standard Kubernetes label syntax.\\nValid values are either:\\n\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per\\nRFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n\\n* Kubernetes-defined prefixed names:\\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n\\n* Other protocols should use implementation-defined prefixed names such as\\nmycompany.com/my-custom-protocol.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL.\\nAll ports within a ServiceSpec must have unique names. When considering\\nthe endpoints for a Service, this must match the 'name' field in the\\nEndpointPort.\\nOptional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"The port on each node on which this service is exposed when type is\\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\\nspecified, in-range, and not in use it will be used, otherwise the\\noperation will fail. If not specified, a port will be allocated if this\\nService requires one. If this field is specified when creating a\\nService which does not need it, creation will fail. This field will be\\nwiped when updating a Service to no longer need it (e.g. changing type\\nfrom NodePort to ClusterIP).\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\".\\nDefault is TCP.\",\n \"type\": \"string\"\n },\n \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the pods targeted by the service.\\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\\nIf this is a string, it will be looked up as a named port in the\\ntarget Pod's container ports. If this is not specified, the value\\nof the 'port' field is used (an identity map).\\nThis field is ignored for services with clusterIP=None, and should be\\nomitted or set equal to the 'port' field.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"port\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this\\nService should disregard any indications of ready/not-ready.\\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\\nServices interpret this to mean that all endpoints are considered \\\"ready\\\" even if the\\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n \"type\": \"boolean\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Route service traffic to pods with label keys and values matching this\\nselector. If empty or not present, the service is assumed to have an\\nexternal process managing its endpoints, which Kubernetes will not\\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\\nIgnored if type is ExternalName.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sessionAffinity\": {\n \"description\": \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity.\\nEnable client IP based session affinity.\\nMust be ClientIP or None.\\nDefaults to None.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n \"type\": \"string\"\n },\n \"sessionAffinityConfig\": {\n \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n \"properties\": {\n \"clientIP\": {\n \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n \"properties\": {\n \"timeoutSeconds\": {\n \"description\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time.\\nThe value must be \\u003e0 \\u0026\\u0026 \\u003c=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\".\\nDefault value is 10800(for 3 hours).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficDistribution\": {\n \"description\": \"TrafficDistribution offers a way to express preferences for how traffic is\\ndistributed to Service endpoints. Implementations can use this field as a\\nhint, but are not required to guarantee strict adherence. If the field is\\nnot set, the implementation will apply its default routing strategy. If set\\nto \\\"PreferClose\\\", implementations should prioritize endpoints that are\\ntopologically close (e.g., same zone).\\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type determines how the Service is exposed. Defaults to ClusterIP. Valid\\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\\n\\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing\\nto endpoints. Endpoints are determined by the selector or if that is not\\nspecified, by manual construction of an Endpoints object or\\nEndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is\\nallocated and the endpoints are published as a set of endpoints rather\\nthan a virtual IP.\\n\\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which\\nroutes to the same endpoints as the clusterIP.\\n\\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer\\n(if supported in the current cloud) which routes to the same endpoints\\nas the clusterIP.\\n\\\"ExternalName\\\" aliases this service to the specified externalName.\\nSeveral other fields do not apply to ExternalName services.\\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS defines options for configuring TLS for HTTP.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.\\nThe referenced secret should contain the following:\\n\\n\\n- `ca.crt`: The certificate authority (optional).\\n- `tls.crt`: The certificate (or a chain).\\n- `tls.key`: The private key to the first certificate in the certificate chain.\",\n \"properties\": {\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"selfSignedCertificate\": {\n \"description\": \"SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled indicates that the provisioning of the self-signed certifcate should be disabled.\",\n \"type\": \"boolean\"\n },\n \"subjectAltNames\": {\n \"description\": \"SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.\",\n \"items\": {\n \"description\": \"SubjectAlternativeName represents a SAN entry in a x509 certificate.\",\n \"properties\": {\n \"dns\": {\n \"description\": \"DNS is the DNS name of the subject.\",\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP is the IP address of the subject.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"updateStrategy\": {\n \"description\": \"UpdateStrategy is a StatefulSetUpdateStrategy. The default type is \\\"RollingUpdate\\\".\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding up. This can not be 0.\\nDefaults to 1. This field is alpha-level and is only honored by servers that enable the\\nMaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\\nReplicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\\nwill be counted towards MaxUnavailable.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned\\nfor updates. During a rolling update, all pods from ordinal Replicas-1 to\\nPartition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\\nThis is helpful in being able to do a canary based deployment. The default value is 0.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy.\\nDefault is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"Version of the Logstash.\",\n \"type\": \"string\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"VolumeClaimTemplates is a list of persistent volume claims to be used by each Pod.\\nEvery claim in this list must have a matching volumeMount in one of the containers defined in the PodTemplate.\\nItems defined here take precedence over any default claims added by the operator with the same name.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object.\\nServers should convert recognized schemas to the latest internal value, and\\nmay reject unrecognized values.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents.\\nServers may infer this from the endpoint the client submits requests to.\\nCannot be updated.\\nIn CamelCase.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Standard object's metadata.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"spec defines the desired characteristics of a volume requested by a pod author.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"status represents the current information/status of a persistent volume claim.\\nRead-only.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the actual access modes the volume backing the PVC has.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"allocatedResourceStatuses\": {\n \"additionalProperties\": {\n \"description\": \"When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource\\nthat it does not recognizes, then it should ignore that update and let other controllers\\nhandle it.\",\n \"type\": \"string\"\n },\n \"description\": \"allocatedResourceStatuses stores status of resource being resized for the given PVC.\\nKey names follow standard Kubernetes label syntax. Valid values are either:\\n\\t* Un-prefixed keys:\\n\\t\\t- storage - the capacity of the volume.\\n\\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\"\\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\\nreserved and hence may not be used.\\n\\n\\nClaimResourceStatus can be in any of following states:\\n\\t- ControllerResizeInProgress:\\n\\t\\tState set when resize controller starts resizing the volume in control-plane.\\n\\t- ControllerResizeFailed:\\n\\t\\tState set when resize has failed in resize controller with a terminal error.\\n\\t- NodeResizePending:\\n\\t\\tState set when resize controller has finished resizing the volume but further resizing of\\n\\t\\tvolume is needed on the node.\\n\\t- NodeResizeInProgress:\\n\\t\\tState set when kubelet starts resizing the volume.\\n\\t- NodeResizeFailed:\\n\\t\\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\\n\\t\\tNodeResizeFailed.\\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\\n\\t- pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeInProgress\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeFailed\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizePending\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeInProgress\\\"\\n - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeFailed\\\"\\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\\n\\n\\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\\nshould ignore the update for the purpose it was designed. For example - a controller that\\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\\nresources associated with PVC.\\n\\n\\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"granular\"\n },\n \"allocatedResources\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"allocatedResources tracks the resources allocated to a PVC including its capacity.\\nKey names follow standard Kubernetes label syntax. Valid values are either:\\n\\t* Un-prefixed keys:\\n\\t\\t- storage - the capacity of the volume.\\n\\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\"\\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\\nreserved and hence may not be used.\\n\\n\\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\\nis requested.\\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\\nIf a volume expansion capacity request is lowered, allocatedResources is only\\nlowered if there are no expansion operations in progress and if the actual volume capacity\\nis equal or lower than the requested capacity.\\n\\n\\nA controller that receives PVC update with previously unknown resourceName\\nshould ignore the update for the purpose it was designed. For example - a controller that\\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\\nresources associated with PVC.\\n\\n\\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"capacity represents the actual resources of the underlying volume.\",\n \"type\": \"object\"\n },\n \"conditions\": {\n \"description\": \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being\\nresized then the Condition will be set to 'Resizing'.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaimCondition contains details about state of pvc\",\n \"properties\": {\n \"lastProbeTime\": {\n \"description\": \"lastProbeTime is the time we probed the condition.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"lastTransitionTime\": {\n \"description\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"message is the human-readable message indicating details about last transition.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"reason is a unique, this should be a short, machine understandable string that gives the reason\\nfor condition's last transition. If it reports \\\"Resizing\\\" that means the underlying\\npersistent volume is being resized.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"type\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"currentVolumeAttributesClassName\": {\n \"description\": \"currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.\\nWhen unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim\\nThis is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"type\": \"string\"\n },\n \"modifyVolumeStatus\": {\n \"description\": \"ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.\\nWhen this is unset, there is no ModifyVolume operation being attempted.\\nThis is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"properties\": {\n \"status\": {\n \"description\": \"status is the status of the ControllerModifyVolume operation. It can be in any of following states:\\n - Pending\\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\\n the specified VolumeAttributesClass not existing.\\n - InProgress\\n InProgress indicates that the volume is being modified.\\n - Infeasible\\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\\n\\t resolve the error, a valid VolumeAttributesClass needs to be specified.\\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\",\n \"type\": \"string\"\n },\n \"targetVolumeAttributesClassName\": {\n \"description\": \"targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"type\": \"object\"\n },\n \"phase\": {\n \"description\": \"phase represents the current phase of PersistentVolumeClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Logstash\",\n \"type\": \"object\"\n}", + "version": "logstash.k8s.elastic.co/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Logstash", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/StackConfigPolicy.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/StackConfigPolicy.json new file mode 100644 index 00000000000..d33c80589df --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/components/StackConfigPolicy.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "StackConfigPolicy", + "schema": "{\n \"description\": \"StackConfigPolicy represents a StackConfigPolicy resource in a Kubernetes cluster.\",\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"elasticsearch\": {\n \"properties\": {\n \"clusterSettings\": {\n \"description\": \"ClusterSettings holds the Elasticsearch cluster settings (/_cluster/settings)\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"config\": {\n \"description\": \"Config holds the settings that go into elasticsearch.yml.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"indexLifecyclePolicies\": {\n \"description\": \"IndexLifecyclePolicies holds the Index Lifecycle policies settings (/_ilm/policy)\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"indexTemplates\": {\n \"description\": \"IndexTemplates holds the Index and Component Templates settings\",\n \"format\": \"textarea\",\n \"properties\": {\n \"componentTemplates\": {\n \"description\": \"ComponentTemplates holds the Component Templates settings (/_component_template)\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"composableIndexTemplates\": {\n \"description\": \"ComposableIndexTemplates holds the Index Templates settings (/_index_template)\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"string\"\n },\n \"ingestPipelines\": {\n \"description\": \"IngestPipelines holds the Ingest Pipelines settings (/_ingest/pipeline)\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"secretMounts\": {\n \"description\": \"SecretMounts are additional Secrets that need to be mounted into the Elasticsearch pods.\",\n \"format\": \"textarea\",\n \"items\": {\n \"description\": \"SecretMount contains information about additional secrets to be mounted to the elasticsearch pods\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"MountPath denotes the path to which the secret should be mounted to inside the elasticsearch pod\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName denotes the name of the secret that needs to be mounted to the elasticsearch pod\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"string\"\n },\n \"secureSettings\": {\n \"description\": \"SecureSettings are additional Secrets that contain data to be configured to Elasticsearch's keystore.\",\n \"format\": \"textarea\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"string\"\n },\n \"securityRoleMappings\": {\n \"description\": \"SecurityRoleMappings holds the Role Mappings settings (/_security/role_mapping)\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"snapshotLifecyclePolicies\": {\n \"description\": \"SnapshotLifecyclePolicies holds the Snapshot Lifecycle Policies settings (/_slm/policy)\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"snapshotRepositories\": {\n \"description\": \"SnapshotRepositories holds the Snapshot Repositories settings (/_snapshot)\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"kibana\": {\n \"properties\": {\n \"config\": {\n \"description\": \"Config holds the settings that go into kibana.yml.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"secureSettings\": {\n \"description\": \"SecureSettings are additional Secrets that contain data to be configured to Kibana's keystore.\",\n \"format\": \"textarea\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"resourceSelector\": {\n \"description\": \"A label selector is a label query over a set of resources. The result of matchLabels and\\nmatchExpressions are ANDed. An empty label selector matches all objects. A null\\nlabel selector matches no objects.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secureSettings\": {\n \"description\": \"Deprecated: SecureSettings only applies to Elasticsearch and is deprecated. It must be set per application instead.\",\n \"items\": {\n \"description\": \"SecretSource defines a data source based on a Kubernetes Secret.\",\n \"properties\": {\n \"entries\": {\n \"description\": \"Entries define how to project each key-value pair in the secret to filesystem paths.\\nIf not defined, all keys will be projected to similarly named paths in the filesystem.\\nIf defined, only the specified keys will be projected to the corresponding paths.\",\n \"items\": {\n \"description\": \"KeyToPath defines how to map a key in a Secret object to a filesystem path.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key is the key contained in the secret.\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the relative file path to map the key to.\\nPath must not be an absolute file path and must not contain any \\\"..\\\" components.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"secretName\": {\n \"description\": \"SecretName is the name of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Stack Config Policy\",\n \"type\": \"object\"\n}", + "version": "stackconfigpolicy.k8s.elastic.co/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Stack Config Policy", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/elastic/cloud-on-k8s/main/config/crds/v1/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"/\u003e\n\u003cpath d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"/\u003e\n\u003cpath d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"/\u003e\n\u003cpath d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"/\u003e\n\u003cpath d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"/\u003e\n\u003cpath d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"/\u003e\n\u003cpath d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"205\" height=\"204\" viewBox=\"0 0 205 204\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath\n d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\"\n fill=\"#000\" /\u003e\n \u003cpath\n d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\"\n fill=\"#fff\" /\u003e\n \u003cpath\n d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/model.json b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/model.json new file mode 100644 index 00000000000..c4ea4ba49d1 --- /dev/null +++ b/server/meshmodel/elasticsearch-operator/v2.14.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Elastic Search", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#FEC514", + "secondaryColor": "#00D3A9", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#FEC514\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#00BFB3\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#F04E98\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#1BA9F5\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#93C90E\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#0077CC\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 205 204\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M204.58 106.744C204.603 98.4365 202.056 90.3256 197.289 83.5226C192.521 76.7196 185.766 71.5575 177.95 68.7437C178.661 65.1202 179.02 61.4363 179.02 57.7437C179.015 45.5282 175.137 33.6288 167.945 23.7553C160.752 13.8817 150.615 6.54212 138.99 2.79108C127.365 -0.95996 114.849 -0.929399 103.242 2.87837C91.6356 6.68615 81.5344 14.0751 74.3903 23.9837C69.1179 19.9113 62.6636 17.6651 56.0021 17.5844C49.3406 17.5036 42.8337 19.5926 37.4641 23.536C32.0946 27.4793 28.1539 33.0628 26.2374 39.4431C24.3208 45.8235 24.5325 52.6542 26.8403 58.9037C19.0148 61.7531 12.2486 66.929 7.45072 73.7362C2.6528 80.5433 0.0529206 88.6558 0.000313645 96.9837C-0.0326102 105.33 2.52727 113.48 7.32627 120.309C12.1253 127.138 18.9265 132.307 26.7903 135.104C25.1677 143.453 25.4123 152.057 27.5064 160.301C29.6005 168.544 33.4924 176.222 38.903 182.784C44.3136 189.347 51.1089 194.631 58.8019 198.258C66.495 201.885 74.8951 203.765 83.4003 203.764C92.5559 203.772 101.581 201.59 109.722 197.402C117.863 193.213 124.884 187.138 130.2 179.684C135.455 183.802 141.912 186.091 148.588 186.201C155.264 186.312 161.793 184.238 167.181 180.295C172.569 176.353 176.522 170.758 178.437 164.362C180.352 157.965 180.125 151.119 177.79 144.864C185.623 142.013 192.394 136.832 197.193 130.016C201.992 123.201 204.587 115.079 204.63 106.744\" fill=\"#000\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M80.4304 87.7437L125.2 108.154L170.36 68.5837C172.647 57.1747 170.923 45.326 165.48 35.0418C160.036 24.7576 151.208 16.6692 140.487 12.1447C129.767 7.62016 117.813 6.9373 106.647 10.2116C95.4817 13.4859 85.7895 20.5163 79.2104 30.1137L71.6904 69.1137L80.4304 87.7437Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M34.1005 135.154C31.7687 146.616 33.4787 158.533 38.9397 168.877C44.4007 179.221 53.2757 187.355 64.0559 191.895C74.836 196.436 86.856 197.103 98.0722 193.783C109.288 190.463 119.009 183.36 125.581 173.684L133.031 134.844L123.031 115.844L78.1405 95.3437L34.1005 135.154Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M33.7903 57.6837L64.4903 64.9237L71.2103 30.0437C67.0362 26.8839 61.9516 25.1598 56.7165 25.1289C51.4814 25.0981 46.3769 26.7623 42.1659 29.8727C37.9549 32.9831 34.8636 37.3728 33.3539 42.3856C31.8442 47.3984 31.9973 52.7651 33.7903 57.6837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.1505 64.9837C24.5185 67.1748 18.727 71.3643 14.5705 76.9775C10.4141 82.5907 8.09631 89.3525 7.93527 96.3353C7.77423 103.318 9.7778 110.179 13.6711 115.978C17.5643 121.777 23.1566 126.229 29.6805 128.724L72.6805 89.8137L64.7905 72.9837L31.1505 64.9837Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M133.44 173.684C137.012 176.435 141.284 178.128 145.77 178.572C150.256 179.016 154.777 178.191 158.818 176.193C162.859 174.195 166.259 171.103 168.63 167.269C171.001 163.434 172.248 159.012 172.23 154.504C172.243 151.636 171.749 148.789 170.77 146.094L140.12 138.924L133.44 173.684Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M139.68 130.894L173.43 138.784C180.166 136.513 186.025 132.197 190.191 126.437C194.357 120.678 196.622 113.762 196.67 106.654C196.664 99.8008 194.573 93.1119 190.676 87.4751C186.779 81.8382 181.259 77.52 174.85 75.0937L130.72 113.764L139.68 130.894Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v2.14.0" + }, + "name": "elasticsearch-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Logging", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/Cluster.json b/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/Cluster.json new file mode 100644 index 00000000000..44043a4da91 --- /dev/null +++ b/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/Cluster.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Cluster", + "schema": "{\n \"description\": \"Cluster is used to represent a cluster's endpoints of connector and edge nodes\",\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"cidrs\": {\n \"description\": \"CIDRs is supposed to contain cluster-cidr and cluster-service-ip-range of a cluster, these are mainly used to create ippools to avoid SNAT in calico environment\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"endpoints\": {\n \"description\": \"Endpoints of connector and exported edge nodes of a cluster\",\n \"items\": {\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nodeSubnets\": {\n \"description\": \"internal IPs of kubernetes node\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"public UDP port for IKE communication, only used to configure remote_port. Default: 500\",\n \"type\": \"integer\"\n },\n \"publicAddresses\": {\n \"description\": \"public addresses can be IP, DNS\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"subnets\": {\n \"description\": \"pod subnets\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"description\": \"Type of endpoints: Connector or EdgeNode\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"token\": {\n \"description\": \"Token is used by child cluster to access root cluster's apiserver\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Cluster\",\n \"type\": \"object\"\n}", + "version": "fabedge.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Cluster", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/FabEdge/helm-chart/main/fabedge/crds" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Fabedge", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0550b2", + "secondaryColor": "#1e62ba", + "shape": "circle", + "source_uri": "git://github.com/FabEdge/helm-chart/main/fabedge/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 916.9 916.9\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:url(#未命名的渐变_12-2);}.cls-3{fill:url(#未命名的渐变_12-3);}.cls-4{fill:url(#未命名的渐变_21);}.cls-5{fill:url(#未命名的渐变_21-2);}.cls-6{fill:url(#未命名的渐变_12-4);}.cls-7{fill:url(#未命名的渐变_12-5);}.cls-8{fill:url(#未命名的渐变_12-6);}.cls-9{fill:url(#未命名的渐变_12-7);}.cls-10{fill:url(#未命名的渐变_12-8);}.cls-11{fill:url(#未命名的渐变_12-9);}.cls-12{fill:url(#未命名的渐变_12-10);}.cls-13{fill:url(#未命名的渐变_12-11);}.cls-14{fill:url(#未命名的渐变_12-12);}.cls-15{fill:url(#未命名的渐变_12-13);}.cls-16{fill:url(#未命名的渐变_12-14);}.cls-17{fill:url(#未命名的渐变_12-15);}.cls-18{fill:url(#未命名的渐变_12-16);}.cls-19{fill:url(#未命名的渐变_12-17);}.cls-20{fill:url(#未命名的渐变_12-18);}.cls-21{fill:url(#未命名的渐变_12-19);}.cls-22{fill:url(#未命名的渐变_12-20);}.cls-23{fill:url(#未命名的渐变_12-21);}.cls-24{fill:url(#未命名的渐变_12-22);}.cls-25{fill:url(#未命名的渐变_12-23);}.cls-26{fill:url(#未命名的渐变_12-24);}.cls-27{fill:url(#未命名的渐变_12-25);}.cls-28{fill:url(#未命名的渐变_12-26);}.cls-29{fill:url(#未命名的渐变_12-27);}.cls-30{fill:url(#未命名的渐变_12-28);}.cls-31{fill:url(#未命名的渐变_12-29);}.cls-32{fill:url(#未命名的渐变_12-30);}.cls-33{fill:url(#未命名的渐变_12-31);}.cls-34{fill:url(#未命名的渐变_12-32);}.cls-35{fill:url(#未命名的渐变_12-33);}.cls-36{fill:url(#未命名的渐变_12-34);}.cls-37{fill:url(#未命名的渐变_12-35);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12\" x1=\"205.61\" y1=\"491.18\" x2=\"706.67\" y2=\"491.18\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#48abf9\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#0084fe\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-2\" x1=\"458.59\" y1=\"337.06\" x2=\"627.21\" y2=\"337.06\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-3\" x1=\"293.25\" y1=\"350.85\" x2=\"421.63\" y2=\"350.85\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_21\" x1=\"142.63\" y1=\"500.22\" x2=\"430.46\" y2=\"500.22\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0054d4\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#0069e7\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_21-2\" x1=\"427.78\" y1=\"421.29\" x2=\"769.64\" y2=\"421.29\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_21\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-4\" x1=\"466.91\" y1=\"620.24\" x2=\"495.53\" y2=\"620.24\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-5\" x1=\"466.91\" y1=\"690.71\" x2=\"495.53\" y2=\"690.71\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-6\" x1=\"466.91\" y1=\"761.19\" x2=\"495.77\" y2=\"761.19\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-7\" x1=\"516.93\" y1=\"761.31\" x2=\"646.63\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-8\" x1=\"667.79\" y1=\"761.31\" x2=\"696.65\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-9\" x1=\"574.8\" y1=\"615.33\" x2=\"603.43\" y2=\"615.33\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-10\" x1=\"574.8\" y1=\"678.51\" x2=\"603.67\" y2=\"678.51\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-11\" x1=\"762.18\" y1=\"678.63\" x2=\"791.27\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-12\" x1=\"805.86\" y1=\"678.51\" x2=\"834.95\" y2=\"678.51\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-13\" x1=\"715.28\" y1=\"678.63\" x2=\"744.37\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-14\" x1=\"668.38\" y1=\"678.63\" x2=\"697.47\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-15\" x1=\"621.47\" y1=\"678.63\" x2=\"650.57\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-16\" x1=\"709.41\" y1=\"761.31\" x2=\"767.87\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-17\" x1=\"849.41\" y1=\"678.63\" x2=\"907.88\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-18\" x1=\"375\" y1=\"280.85\" x2=\"403.63\" y2=\"280.85\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-19\" x1=\"375\" y1=\"236.62\" x2=\"403.63\" y2=\"236.62\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-20\" x1=\"374.76\" y1=\"192.38\" x2=\"403.63\" y2=\"192.38\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-21\" x1=\"223.91\" y1=\"192.26\" x2=\"353.6\" y2=\"192.26\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-22\" x1=\"262.34\" y1=\"328.22\" x2=\"290.96\" y2=\"328.22\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-23\" x1=\"262.1\" y1=\"284.6\" x2=\"290.96\" y2=\"284.6\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-24\" x1=\"85.97\" y1=\"284.48\" x2=\"247.13\" y2=\"284.48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-25\" x1=\"149.42\" y1=\"192.26\" x2=\"207.89\" y2=\"192.26\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-26\" x1=\"12.9\" y1=\"284.48\" x2=\"71.37\" y2=\"284.48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-27\" x1=\"487.64\" y1=\"444.79\" x2=\"524.96\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-28\" x1=\"487.64\" y1=\"486.72\" x2=\"524.96\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-29\" x1=\"534.59\" y1=\"486.72\" x2=\"571.9\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-30\" x1=\"441.14\" y1=\"444.79\" x2=\"478.46\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-31\" x1=\"441.14\" y1=\"486.72\" x2=\"478.46\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-32\" x1=\"394.73\" y1=\"444.79\" x2=\"432.04\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-33\" x1=\"394.73\" y1=\"486.72\" x2=\"432.04\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-34\" x1=\"350.07\" y1=\"486.72\" x2=\"387.39\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-35\" x1=\"487.64\" y1=\"402.86\" x2=\"524.96\" y2=\"402.86\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003e未标题-1\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-18\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-19\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-20\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-21\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-22\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-23\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-24\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-25\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-26\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-27\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-28\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"\u003e\u003c/path\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-29\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-30\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-31\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-32\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-33\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-34\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-35\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-36\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-37\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 916.9 916.9\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003e未标题-1\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"\u003e\u003c/path\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.0.0" + }, + "name": "fabedge", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Network", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0550b2", + "secondaryColor": "#1e62ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 916.9 916.9\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:url(#未命名的渐变_12-2);}.cls-3{fill:url(#未命名的渐变_12-3);}.cls-4{fill:url(#未命名的渐变_21);}.cls-5{fill:url(#未命名的渐变_21-2);}.cls-6{fill:url(#未命名的渐变_12-4);}.cls-7{fill:url(#未命名的渐变_12-5);}.cls-8{fill:url(#未命名的渐变_12-6);}.cls-9{fill:url(#未命名的渐变_12-7);}.cls-10{fill:url(#未命名的渐变_12-8);}.cls-11{fill:url(#未命名的渐变_12-9);}.cls-12{fill:url(#未命名的渐变_12-10);}.cls-13{fill:url(#未命名的渐变_12-11);}.cls-14{fill:url(#未命名的渐变_12-12);}.cls-15{fill:url(#未命名的渐变_12-13);}.cls-16{fill:url(#未命名的渐变_12-14);}.cls-17{fill:url(#未命名的渐变_12-15);}.cls-18{fill:url(#未命名的渐变_12-16);}.cls-19{fill:url(#未命名的渐变_12-17);}.cls-20{fill:url(#未命名的渐变_12-18);}.cls-21{fill:url(#未命名的渐变_12-19);}.cls-22{fill:url(#未命名的渐变_12-20);}.cls-23{fill:url(#未命名的渐变_12-21);}.cls-24{fill:url(#未命名的渐变_12-22);}.cls-25{fill:url(#未命名的渐变_12-23);}.cls-26{fill:url(#未命名的渐变_12-24);}.cls-27{fill:url(#未命名的渐变_12-25);}.cls-28{fill:url(#未命名的渐变_12-26);}.cls-29{fill:url(#未命名的渐变_12-27);}.cls-30{fill:url(#未命名的渐变_12-28);}.cls-31{fill:url(#未命名的渐变_12-29);}.cls-32{fill:url(#未命名的渐变_12-30);}.cls-33{fill:url(#未命名的渐变_12-31);}.cls-34{fill:url(#未命名的渐变_12-32);}.cls-35{fill:url(#未命名的渐变_12-33);}.cls-36{fill:url(#未命名的渐变_12-34);}.cls-37{fill:url(#未命名的渐变_12-35);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_12\" x1=\"205.61\" y1=\"491.18\" x2=\"706.67\" y2=\"491.18\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#48abf9\"/\u003e\u003cstop offset=\"1\" stop-color=\"#0084fe\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_12-2\" x1=\"458.59\" y1=\"337.06\" x2=\"627.21\" y2=\"337.06\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-3\" x1=\"293.25\" y1=\"350.85\" x2=\"421.63\" y2=\"350.85\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_21\" x1=\"142.63\" y1=\"500.22\" x2=\"430.46\" y2=\"500.22\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0054d4\"/\u003e\u003cstop offset=\"1\" stop-color=\"#0069e7\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_21-2\" x1=\"427.78\" y1=\"421.29\" x2=\"769.64\" y2=\"421.29\" xlink:href=\"#未命名的渐变_21\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-4\" x1=\"466.91\" y1=\"620.24\" x2=\"495.53\" y2=\"620.24\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-5\" x1=\"466.91\" y1=\"690.71\" x2=\"495.53\" y2=\"690.71\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-6\" x1=\"466.91\" y1=\"761.19\" x2=\"495.77\" y2=\"761.19\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-7\" x1=\"516.93\" y1=\"761.31\" x2=\"646.63\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-8\" x1=\"667.79\" y1=\"761.31\" x2=\"696.65\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-9\" x1=\"574.8\" y1=\"615.33\" x2=\"603.43\" y2=\"615.33\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-10\" x1=\"574.8\" y1=\"678.51\" x2=\"603.67\" y2=\"678.51\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-11\" x1=\"762.18\" y1=\"678.63\" x2=\"791.27\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-12\" x1=\"805.86\" y1=\"678.51\" x2=\"834.95\" y2=\"678.51\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-13\" x1=\"715.28\" y1=\"678.63\" x2=\"744.37\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-14\" x1=\"668.38\" y1=\"678.63\" x2=\"697.47\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-15\" x1=\"621.47\" y1=\"678.63\" x2=\"650.57\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-16\" x1=\"709.41\" y1=\"761.31\" x2=\"767.87\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-17\" x1=\"849.41\" y1=\"678.63\" x2=\"907.88\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-18\" x1=\"375\" y1=\"280.85\" x2=\"403.63\" y2=\"280.85\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-19\" x1=\"375\" y1=\"236.62\" x2=\"403.63\" y2=\"236.62\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-20\" x1=\"374.76\" y1=\"192.38\" x2=\"403.63\" y2=\"192.38\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-21\" x1=\"223.91\" y1=\"192.26\" x2=\"353.6\" y2=\"192.26\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-22\" x1=\"262.34\" y1=\"328.22\" x2=\"290.96\" y2=\"328.22\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-23\" x1=\"262.1\" y1=\"284.6\" x2=\"290.96\" y2=\"284.6\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-24\" x1=\"85.97\" y1=\"284.48\" x2=\"247.13\" y2=\"284.48\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-25\" x1=\"149.42\" y1=\"192.26\" x2=\"207.89\" y2=\"192.26\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-26\" x1=\"12.9\" y1=\"284.48\" x2=\"71.37\" y2=\"284.48\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-27\" x1=\"487.64\" y1=\"444.79\" x2=\"524.96\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-28\" x1=\"487.64\" y1=\"486.72\" x2=\"524.96\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-29\" x1=\"534.59\" y1=\"486.72\" x2=\"571.9\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-30\" x1=\"441.14\" y1=\"444.79\" x2=\"478.46\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-31\" x1=\"441.14\" y1=\"486.72\" x2=\"478.46\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-32\" x1=\"394.73\" y1=\"444.79\" x2=\"432.04\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-33\" x1=\"394.73\" y1=\"486.72\" x2=\"432.04\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-34\" x1=\"350.07\" y1=\"486.72\" x2=\"387.39\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-35\" x1=\"487.64\" y1=\"402.86\" x2=\"524.96\" y2=\"402.86\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003c/defs\u003e\u003ctitle\u003e未标题-1\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"/\u003e\u003cpath d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"/\u003e\u003cpath d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"/\u003e\u003cpath d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"/\u003e\u003cpath class=\"cls-7\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"/\u003e\u003cpath class=\"cls-8\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"/\u003e\u003cpath class=\"cls-9\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-10\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-11\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"/\u003e\u003cpath class=\"cls-12\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"/\u003e\u003cpath class=\"cls-13\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-14\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-15\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-16\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-17\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-18\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"/\u003e\u003cpath class=\"cls-19\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"/\u003e\u003cpath class=\"cls-20\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"/\u003e\u003cpath class=\"cls-21\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"/\u003e\u003cpath class=\"cls-22\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"/\u003e\u003cpath class=\"cls-23\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-24\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"/\u003e\u003cpath class=\"cls-25\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"/\u003e\u003cpath class=\"cls-26\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-27\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"/\u003e\u003cpath class=\"cls-28\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"/\u003e\u003crect class=\"cls-29\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-30\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-31\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-32\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-33\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-34\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-35\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-36\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-37\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 916.9 916.9\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003e未标题-1\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/Community.json b/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/Community.json new file mode 100644 index 00000000000..f7e752b2d24 --- /dev/null +++ b/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/Community.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Community", + "schema": "{\n \"description\": \"Community is used to manage a communication unit, it's members should be edge nodes\",\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"members\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Community\",\n \"type\": \"object\"\n}", + "version": "fabedge.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Community", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/FabEdge/helm-chart/main/fabedge/crds" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Fabedge", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0550b2", + "secondaryColor": "#1e62ba", + "shape": "circle", + "source_uri": "git://github.com/FabEdge/helm-chart/main/fabedge/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 916.9 916.9\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:url(#未命名的渐变_12-2);}.cls-3{fill:url(#未命名的渐变_12-3);}.cls-4{fill:url(#未命名的渐变_21);}.cls-5{fill:url(#未命名的渐变_21-2);}.cls-6{fill:url(#未命名的渐变_12-4);}.cls-7{fill:url(#未命名的渐变_12-5);}.cls-8{fill:url(#未命名的渐变_12-6);}.cls-9{fill:url(#未命名的渐变_12-7);}.cls-10{fill:url(#未命名的渐变_12-8);}.cls-11{fill:url(#未命名的渐变_12-9);}.cls-12{fill:url(#未命名的渐变_12-10);}.cls-13{fill:url(#未命名的渐变_12-11);}.cls-14{fill:url(#未命名的渐变_12-12);}.cls-15{fill:url(#未命名的渐变_12-13);}.cls-16{fill:url(#未命名的渐变_12-14);}.cls-17{fill:url(#未命名的渐变_12-15);}.cls-18{fill:url(#未命名的渐变_12-16);}.cls-19{fill:url(#未命名的渐变_12-17);}.cls-20{fill:url(#未命名的渐变_12-18);}.cls-21{fill:url(#未命名的渐变_12-19);}.cls-22{fill:url(#未命名的渐变_12-20);}.cls-23{fill:url(#未命名的渐变_12-21);}.cls-24{fill:url(#未命名的渐变_12-22);}.cls-25{fill:url(#未命名的渐变_12-23);}.cls-26{fill:url(#未命名的渐变_12-24);}.cls-27{fill:url(#未命名的渐变_12-25);}.cls-28{fill:url(#未命名的渐变_12-26);}.cls-29{fill:url(#未命名的渐变_12-27);}.cls-30{fill:url(#未命名的渐变_12-28);}.cls-31{fill:url(#未命名的渐变_12-29);}.cls-32{fill:url(#未命名的渐变_12-30);}.cls-33{fill:url(#未命名的渐变_12-31);}.cls-34{fill:url(#未命名的渐变_12-32);}.cls-35{fill:url(#未命名的渐变_12-33);}.cls-36{fill:url(#未命名的渐变_12-34);}.cls-37{fill:url(#未命名的渐变_12-35);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12\" x1=\"205.61\" y1=\"491.18\" x2=\"706.67\" y2=\"491.18\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#48abf9\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#0084fe\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-2\" x1=\"458.59\" y1=\"337.06\" x2=\"627.21\" y2=\"337.06\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-3\" x1=\"293.25\" y1=\"350.85\" x2=\"421.63\" y2=\"350.85\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_21\" x1=\"142.63\" y1=\"500.22\" x2=\"430.46\" y2=\"500.22\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0054d4\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#0069e7\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_21-2\" x1=\"427.78\" y1=\"421.29\" x2=\"769.64\" y2=\"421.29\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_21\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-4\" x1=\"466.91\" y1=\"620.24\" x2=\"495.53\" y2=\"620.24\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-5\" x1=\"466.91\" y1=\"690.71\" x2=\"495.53\" y2=\"690.71\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-6\" x1=\"466.91\" y1=\"761.19\" x2=\"495.77\" y2=\"761.19\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-7\" x1=\"516.93\" y1=\"761.31\" x2=\"646.63\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-8\" x1=\"667.79\" y1=\"761.31\" x2=\"696.65\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-9\" x1=\"574.8\" y1=\"615.33\" x2=\"603.43\" y2=\"615.33\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-10\" x1=\"574.8\" y1=\"678.51\" x2=\"603.67\" y2=\"678.51\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-11\" x1=\"762.18\" y1=\"678.63\" x2=\"791.27\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-12\" x1=\"805.86\" y1=\"678.51\" x2=\"834.95\" y2=\"678.51\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-13\" x1=\"715.28\" y1=\"678.63\" x2=\"744.37\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-14\" x1=\"668.38\" y1=\"678.63\" x2=\"697.47\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-15\" x1=\"621.47\" y1=\"678.63\" x2=\"650.57\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-16\" x1=\"709.41\" y1=\"761.31\" x2=\"767.87\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-17\" x1=\"849.41\" y1=\"678.63\" x2=\"907.88\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-18\" x1=\"375\" y1=\"280.85\" x2=\"403.63\" y2=\"280.85\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-19\" x1=\"375\" y1=\"236.62\" x2=\"403.63\" y2=\"236.62\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-20\" x1=\"374.76\" y1=\"192.38\" x2=\"403.63\" y2=\"192.38\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-21\" x1=\"223.91\" y1=\"192.26\" x2=\"353.6\" y2=\"192.26\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-22\" x1=\"262.34\" y1=\"328.22\" x2=\"290.96\" y2=\"328.22\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-23\" x1=\"262.1\" y1=\"284.6\" x2=\"290.96\" y2=\"284.6\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-24\" x1=\"85.97\" y1=\"284.48\" x2=\"247.13\" y2=\"284.48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-25\" x1=\"149.42\" y1=\"192.26\" x2=\"207.89\" y2=\"192.26\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-26\" x1=\"12.9\" y1=\"284.48\" x2=\"71.37\" y2=\"284.48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-27\" x1=\"487.64\" y1=\"444.79\" x2=\"524.96\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-28\" x1=\"487.64\" y1=\"486.72\" x2=\"524.96\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-29\" x1=\"534.59\" y1=\"486.72\" x2=\"571.9\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-30\" x1=\"441.14\" y1=\"444.79\" x2=\"478.46\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-31\" x1=\"441.14\" y1=\"486.72\" x2=\"478.46\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-32\" x1=\"394.73\" y1=\"444.79\" x2=\"432.04\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-33\" x1=\"394.73\" y1=\"486.72\" x2=\"432.04\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-34\" x1=\"350.07\" y1=\"486.72\" x2=\"387.39\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-35\" x1=\"487.64\" y1=\"402.86\" x2=\"524.96\" y2=\"402.86\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003e未标题-1\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-18\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-19\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-20\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-21\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-22\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-23\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-24\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-25\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-26\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-27\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-28\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"\u003e\u003c/path\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-29\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-30\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-31\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-32\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-33\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-34\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-35\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-36\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-37\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 916.9 916.9\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003e未标题-1\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"\u003e\u003c/path\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.0.0" + }, + "name": "fabedge", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Network", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0550b2", + "secondaryColor": "#1e62ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 916.9 916.9\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:url(#未命名的渐变_12-2);}.cls-3{fill:url(#未命名的渐变_12-3);}.cls-4{fill:url(#未命名的渐变_21);}.cls-5{fill:url(#未命名的渐变_21-2);}.cls-6{fill:url(#未命名的渐变_12-4);}.cls-7{fill:url(#未命名的渐变_12-5);}.cls-8{fill:url(#未命名的渐变_12-6);}.cls-9{fill:url(#未命名的渐变_12-7);}.cls-10{fill:url(#未命名的渐变_12-8);}.cls-11{fill:url(#未命名的渐变_12-9);}.cls-12{fill:url(#未命名的渐变_12-10);}.cls-13{fill:url(#未命名的渐变_12-11);}.cls-14{fill:url(#未命名的渐变_12-12);}.cls-15{fill:url(#未命名的渐变_12-13);}.cls-16{fill:url(#未命名的渐变_12-14);}.cls-17{fill:url(#未命名的渐变_12-15);}.cls-18{fill:url(#未命名的渐变_12-16);}.cls-19{fill:url(#未命名的渐变_12-17);}.cls-20{fill:url(#未命名的渐变_12-18);}.cls-21{fill:url(#未命名的渐变_12-19);}.cls-22{fill:url(#未命名的渐变_12-20);}.cls-23{fill:url(#未命名的渐变_12-21);}.cls-24{fill:url(#未命名的渐变_12-22);}.cls-25{fill:url(#未命名的渐变_12-23);}.cls-26{fill:url(#未命名的渐变_12-24);}.cls-27{fill:url(#未命名的渐变_12-25);}.cls-28{fill:url(#未命名的渐变_12-26);}.cls-29{fill:url(#未命名的渐变_12-27);}.cls-30{fill:url(#未命名的渐变_12-28);}.cls-31{fill:url(#未命名的渐变_12-29);}.cls-32{fill:url(#未命名的渐变_12-30);}.cls-33{fill:url(#未命名的渐变_12-31);}.cls-34{fill:url(#未命名的渐变_12-32);}.cls-35{fill:url(#未命名的渐变_12-33);}.cls-36{fill:url(#未命名的渐变_12-34);}.cls-37{fill:url(#未命名的渐变_12-35);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_12\" x1=\"205.61\" y1=\"491.18\" x2=\"706.67\" y2=\"491.18\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#48abf9\"/\u003e\u003cstop offset=\"1\" stop-color=\"#0084fe\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_12-2\" x1=\"458.59\" y1=\"337.06\" x2=\"627.21\" y2=\"337.06\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-3\" x1=\"293.25\" y1=\"350.85\" x2=\"421.63\" y2=\"350.85\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_21\" x1=\"142.63\" y1=\"500.22\" x2=\"430.46\" y2=\"500.22\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0054d4\"/\u003e\u003cstop offset=\"1\" stop-color=\"#0069e7\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_21-2\" x1=\"427.78\" y1=\"421.29\" x2=\"769.64\" y2=\"421.29\" xlink:href=\"#未命名的渐变_21\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-4\" x1=\"466.91\" y1=\"620.24\" x2=\"495.53\" y2=\"620.24\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-5\" x1=\"466.91\" y1=\"690.71\" x2=\"495.53\" y2=\"690.71\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-6\" x1=\"466.91\" y1=\"761.19\" x2=\"495.77\" y2=\"761.19\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-7\" x1=\"516.93\" y1=\"761.31\" x2=\"646.63\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-8\" x1=\"667.79\" y1=\"761.31\" x2=\"696.65\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-9\" x1=\"574.8\" y1=\"615.33\" x2=\"603.43\" y2=\"615.33\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-10\" x1=\"574.8\" y1=\"678.51\" x2=\"603.67\" y2=\"678.51\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-11\" x1=\"762.18\" y1=\"678.63\" x2=\"791.27\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-12\" x1=\"805.86\" y1=\"678.51\" x2=\"834.95\" y2=\"678.51\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-13\" x1=\"715.28\" y1=\"678.63\" x2=\"744.37\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-14\" x1=\"668.38\" y1=\"678.63\" x2=\"697.47\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-15\" x1=\"621.47\" y1=\"678.63\" x2=\"650.57\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-16\" x1=\"709.41\" y1=\"761.31\" x2=\"767.87\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-17\" x1=\"849.41\" y1=\"678.63\" x2=\"907.88\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-18\" x1=\"375\" y1=\"280.85\" x2=\"403.63\" y2=\"280.85\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-19\" x1=\"375\" y1=\"236.62\" x2=\"403.63\" y2=\"236.62\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-20\" x1=\"374.76\" y1=\"192.38\" x2=\"403.63\" y2=\"192.38\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-21\" x1=\"223.91\" y1=\"192.26\" x2=\"353.6\" y2=\"192.26\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-22\" x1=\"262.34\" y1=\"328.22\" x2=\"290.96\" y2=\"328.22\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-23\" x1=\"262.1\" y1=\"284.6\" x2=\"290.96\" y2=\"284.6\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-24\" x1=\"85.97\" y1=\"284.48\" x2=\"247.13\" y2=\"284.48\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-25\" x1=\"149.42\" y1=\"192.26\" x2=\"207.89\" y2=\"192.26\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-26\" x1=\"12.9\" y1=\"284.48\" x2=\"71.37\" y2=\"284.48\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-27\" x1=\"487.64\" y1=\"444.79\" x2=\"524.96\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-28\" x1=\"487.64\" y1=\"486.72\" x2=\"524.96\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-29\" x1=\"534.59\" y1=\"486.72\" x2=\"571.9\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-30\" x1=\"441.14\" y1=\"444.79\" x2=\"478.46\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-31\" x1=\"441.14\" y1=\"486.72\" x2=\"478.46\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-32\" x1=\"394.73\" y1=\"444.79\" x2=\"432.04\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-33\" x1=\"394.73\" y1=\"486.72\" x2=\"432.04\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-34\" x1=\"350.07\" y1=\"486.72\" x2=\"387.39\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-35\" x1=\"487.64\" y1=\"402.86\" x2=\"524.96\" y2=\"402.86\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003c/defs\u003e\u003ctitle\u003e未标题-1\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"/\u003e\u003cpath d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"/\u003e\u003cpath d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"/\u003e\u003cpath d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"/\u003e\u003cpath class=\"cls-7\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"/\u003e\u003cpath class=\"cls-8\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"/\u003e\u003cpath class=\"cls-9\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-10\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-11\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"/\u003e\u003cpath class=\"cls-12\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"/\u003e\u003cpath class=\"cls-13\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-14\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-15\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-16\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-17\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-18\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"/\u003e\u003cpath class=\"cls-19\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"/\u003e\u003cpath class=\"cls-20\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"/\u003e\u003cpath class=\"cls-21\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"/\u003e\u003cpath class=\"cls-22\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"/\u003e\u003cpath class=\"cls-23\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-24\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"/\u003e\u003cpath class=\"cls-25\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"/\u003e\u003cpath class=\"cls-26\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-27\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"/\u003e\u003cpath class=\"cls-28\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"/\u003e\u003crect class=\"cls-29\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-30\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-31\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-32\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-33\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-34\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-35\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-36\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-37\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 916.9 916.9\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003e未标题-1\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/GlobalService.json b/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/GlobalService.json new file mode 100644 index 00000000000..b32348f2d83 --- /dev/null +++ b/server/meshmodel/fabedge/v1.0.0/v1.0.0/components/GlobalService.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "GlobalService", + "schema": "{\n \"description\": \"GlobalService is used to represent a service which can be accessed through multi-clusters A global services' endpoints can be services if its type is ClusterIP or pods if its type is Headless\",\n \"properties\": {\n \"spec\": {\n \"description\": \"GlobalServiceSpec describes global service and the information necessary to consume it.\",\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"description\": \"Endpoint represents a single logical \\\"backend\\\" implementing a service.\",\n \"properties\": {\n \"addresses\": {\n \"description\": \"addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"cluster\": {\n \"description\": \"Cluster indicates the cluster where an endpoint is located\",\n \"type\": \"string\"\n },\n \"hostname\": {\n \"description\": \"hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region indicates the region where the endpoint is located\",\n \"type\": \"string\"\n },\n \"targetRef\": {\n \"description\": \"targetRef is a reference to a Kubernetes object that represents this endpoint.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"zone\": {\n \"description\": \"Zone indicates the zone where the endpoint is located\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"addresses\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ports\": {\n \"items\": {\n \"description\": \"ServicePort represents the port on which the service is exposed\",\n \"properties\": {\n \"appProtocol\": {\n \"description\": \"The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. Field can be enabled with ServiceAppProtocol feature gate.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port that will be exposed by this service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"description\": \"Type represents the type of services which are the backends of a global service Must be ClusterIP or Headless\",\n \"enum\": [\n \"ClusterIP\",\n \"Headless\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Global Service\",\n \"type\": \"object\"\n}", + "version": "dns.fabedge.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Global Service", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/FabEdge/helm-chart/main/fabedge/crds" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Fabedge", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0550b2", + "secondaryColor": "#1e62ba", + "shape": "circle", + "source_uri": "git://github.com/FabEdge/helm-chart/main/fabedge/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 916.9 916.9\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:url(#未命名的渐变_12-2);}.cls-3{fill:url(#未命名的渐变_12-3);}.cls-4{fill:url(#未命名的渐变_21);}.cls-5{fill:url(#未命名的渐变_21-2);}.cls-6{fill:url(#未命名的渐变_12-4);}.cls-7{fill:url(#未命名的渐变_12-5);}.cls-8{fill:url(#未命名的渐变_12-6);}.cls-9{fill:url(#未命名的渐变_12-7);}.cls-10{fill:url(#未命名的渐变_12-8);}.cls-11{fill:url(#未命名的渐变_12-9);}.cls-12{fill:url(#未命名的渐变_12-10);}.cls-13{fill:url(#未命名的渐变_12-11);}.cls-14{fill:url(#未命名的渐变_12-12);}.cls-15{fill:url(#未命名的渐变_12-13);}.cls-16{fill:url(#未命名的渐变_12-14);}.cls-17{fill:url(#未命名的渐变_12-15);}.cls-18{fill:url(#未命名的渐变_12-16);}.cls-19{fill:url(#未命名的渐变_12-17);}.cls-20{fill:url(#未命名的渐变_12-18);}.cls-21{fill:url(#未命名的渐变_12-19);}.cls-22{fill:url(#未命名的渐变_12-20);}.cls-23{fill:url(#未命名的渐变_12-21);}.cls-24{fill:url(#未命名的渐变_12-22);}.cls-25{fill:url(#未命名的渐变_12-23);}.cls-26{fill:url(#未命名的渐变_12-24);}.cls-27{fill:url(#未命名的渐变_12-25);}.cls-28{fill:url(#未命名的渐变_12-26);}.cls-29{fill:url(#未命名的渐变_12-27);}.cls-30{fill:url(#未命名的渐变_12-28);}.cls-31{fill:url(#未命名的渐变_12-29);}.cls-32{fill:url(#未命名的渐变_12-30);}.cls-33{fill:url(#未命名的渐变_12-31);}.cls-34{fill:url(#未命名的渐变_12-32);}.cls-35{fill:url(#未命名的渐变_12-33);}.cls-36{fill:url(#未命名的渐变_12-34);}.cls-37{fill:url(#未命名的渐变_12-35);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12\" x1=\"205.61\" y1=\"491.18\" x2=\"706.67\" y2=\"491.18\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#48abf9\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#0084fe\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-2\" x1=\"458.59\" y1=\"337.06\" x2=\"627.21\" y2=\"337.06\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-3\" x1=\"293.25\" y1=\"350.85\" x2=\"421.63\" y2=\"350.85\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_21\" x1=\"142.63\" y1=\"500.22\" x2=\"430.46\" y2=\"500.22\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0054d4\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#0069e7\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_21-2\" x1=\"427.78\" y1=\"421.29\" x2=\"769.64\" y2=\"421.29\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_21\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-4\" x1=\"466.91\" y1=\"620.24\" x2=\"495.53\" y2=\"620.24\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-5\" x1=\"466.91\" y1=\"690.71\" x2=\"495.53\" y2=\"690.71\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-6\" x1=\"466.91\" y1=\"761.19\" x2=\"495.77\" y2=\"761.19\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-7\" x1=\"516.93\" y1=\"761.31\" x2=\"646.63\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-8\" x1=\"667.79\" y1=\"761.31\" x2=\"696.65\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-9\" x1=\"574.8\" y1=\"615.33\" x2=\"603.43\" y2=\"615.33\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-10\" x1=\"574.8\" y1=\"678.51\" x2=\"603.67\" y2=\"678.51\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-11\" x1=\"762.18\" y1=\"678.63\" x2=\"791.27\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-12\" x1=\"805.86\" y1=\"678.51\" x2=\"834.95\" y2=\"678.51\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-13\" x1=\"715.28\" y1=\"678.63\" x2=\"744.37\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-14\" x1=\"668.38\" y1=\"678.63\" x2=\"697.47\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-15\" x1=\"621.47\" y1=\"678.63\" x2=\"650.57\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-16\" x1=\"709.41\" y1=\"761.31\" x2=\"767.87\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-17\" x1=\"849.41\" y1=\"678.63\" x2=\"907.88\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-18\" x1=\"375\" y1=\"280.85\" x2=\"403.63\" y2=\"280.85\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-19\" x1=\"375\" y1=\"236.62\" x2=\"403.63\" y2=\"236.62\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-20\" x1=\"374.76\" y1=\"192.38\" x2=\"403.63\" y2=\"192.38\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-21\" x1=\"223.91\" y1=\"192.26\" x2=\"353.6\" y2=\"192.26\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-22\" x1=\"262.34\" y1=\"328.22\" x2=\"290.96\" y2=\"328.22\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-23\" x1=\"262.1\" y1=\"284.6\" x2=\"290.96\" y2=\"284.6\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-24\" x1=\"85.97\" y1=\"284.48\" x2=\"247.13\" y2=\"284.48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-25\" x1=\"149.42\" y1=\"192.26\" x2=\"207.89\" y2=\"192.26\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-26\" x1=\"12.9\" y1=\"284.48\" x2=\"71.37\" y2=\"284.48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-27\" x1=\"487.64\" y1=\"444.79\" x2=\"524.96\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-28\" x1=\"487.64\" y1=\"486.72\" x2=\"524.96\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-29\" x1=\"534.59\" y1=\"486.72\" x2=\"571.9\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-30\" x1=\"441.14\" y1=\"444.79\" x2=\"478.46\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-31\" x1=\"441.14\" y1=\"486.72\" x2=\"478.46\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-32\" x1=\"394.73\" y1=\"444.79\" x2=\"432.04\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-33\" x1=\"394.73\" y1=\"486.72\" x2=\"432.04\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-34\" x1=\"350.07\" y1=\"486.72\" x2=\"387.39\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-35\" x1=\"487.64\" y1=\"402.86\" x2=\"524.96\" y2=\"402.86\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003e未标题-1\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-18\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-19\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-20\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-21\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-22\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-23\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-24\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-25\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-26\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-27\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-28\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"\u003e\u003c/path\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-29\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-30\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-31\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-32\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-33\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-34\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-35\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-36\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-37\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 916.9 916.9\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003e未标题-1\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"\u003e\u003c/path\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.0.0" + }, + "name": "fabedge", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Network", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0550b2", + "secondaryColor": "#1e62ba", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 916.9 916.9\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:url(#未命名的渐变_12-2);}.cls-3{fill:url(#未命名的渐变_12-3);}.cls-4{fill:url(#未命名的渐变_21);}.cls-5{fill:url(#未命名的渐变_21-2);}.cls-6{fill:url(#未命名的渐变_12-4);}.cls-7{fill:url(#未命名的渐变_12-5);}.cls-8{fill:url(#未命名的渐变_12-6);}.cls-9{fill:url(#未命名的渐变_12-7);}.cls-10{fill:url(#未命名的渐变_12-8);}.cls-11{fill:url(#未命名的渐变_12-9);}.cls-12{fill:url(#未命名的渐变_12-10);}.cls-13{fill:url(#未命名的渐变_12-11);}.cls-14{fill:url(#未命名的渐变_12-12);}.cls-15{fill:url(#未命名的渐变_12-13);}.cls-16{fill:url(#未命名的渐变_12-14);}.cls-17{fill:url(#未命名的渐变_12-15);}.cls-18{fill:url(#未命名的渐变_12-16);}.cls-19{fill:url(#未命名的渐变_12-17);}.cls-20{fill:url(#未命名的渐变_12-18);}.cls-21{fill:url(#未命名的渐变_12-19);}.cls-22{fill:url(#未命名的渐变_12-20);}.cls-23{fill:url(#未命名的渐变_12-21);}.cls-24{fill:url(#未命名的渐变_12-22);}.cls-25{fill:url(#未命名的渐变_12-23);}.cls-26{fill:url(#未命名的渐变_12-24);}.cls-27{fill:url(#未命名的渐变_12-25);}.cls-28{fill:url(#未命名的渐变_12-26);}.cls-29{fill:url(#未命名的渐变_12-27);}.cls-30{fill:url(#未命名的渐变_12-28);}.cls-31{fill:url(#未命名的渐变_12-29);}.cls-32{fill:url(#未命名的渐变_12-30);}.cls-33{fill:url(#未命名的渐变_12-31);}.cls-34{fill:url(#未命名的渐变_12-32);}.cls-35{fill:url(#未命名的渐变_12-33);}.cls-36{fill:url(#未命名的渐变_12-34);}.cls-37{fill:url(#未命名的渐变_12-35);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_12\" x1=\"205.61\" y1=\"491.18\" x2=\"706.67\" y2=\"491.18\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#48abf9\"/\u003e\u003cstop offset=\"1\" stop-color=\"#0084fe\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_12-2\" x1=\"458.59\" y1=\"337.06\" x2=\"627.21\" y2=\"337.06\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-3\" x1=\"293.25\" y1=\"350.85\" x2=\"421.63\" y2=\"350.85\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_21\" x1=\"142.63\" y1=\"500.22\" x2=\"430.46\" y2=\"500.22\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0054d4\"/\u003e\u003cstop offset=\"1\" stop-color=\"#0069e7\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_21-2\" x1=\"427.78\" y1=\"421.29\" x2=\"769.64\" y2=\"421.29\" xlink:href=\"#未命名的渐变_21\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-4\" x1=\"466.91\" y1=\"620.24\" x2=\"495.53\" y2=\"620.24\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-5\" x1=\"466.91\" y1=\"690.71\" x2=\"495.53\" y2=\"690.71\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-6\" x1=\"466.91\" y1=\"761.19\" x2=\"495.77\" y2=\"761.19\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-7\" x1=\"516.93\" y1=\"761.31\" x2=\"646.63\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-8\" x1=\"667.79\" y1=\"761.31\" x2=\"696.65\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-9\" x1=\"574.8\" y1=\"615.33\" x2=\"603.43\" y2=\"615.33\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-10\" x1=\"574.8\" y1=\"678.51\" x2=\"603.67\" y2=\"678.51\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-11\" x1=\"762.18\" y1=\"678.63\" x2=\"791.27\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-12\" x1=\"805.86\" y1=\"678.51\" x2=\"834.95\" y2=\"678.51\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-13\" x1=\"715.28\" y1=\"678.63\" x2=\"744.37\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-14\" x1=\"668.38\" y1=\"678.63\" x2=\"697.47\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-15\" x1=\"621.47\" y1=\"678.63\" x2=\"650.57\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-16\" x1=\"709.41\" y1=\"761.31\" x2=\"767.87\" y2=\"761.31\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-17\" x1=\"849.41\" y1=\"678.63\" x2=\"907.88\" y2=\"678.63\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-18\" x1=\"375\" y1=\"280.85\" x2=\"403.63\" y2=\"280.85\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-19\" x1=\"375\" y1=\"236.62\" x2=\"403.63\" y2=\"236.62\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-20\" x1=\"374.76\" y1=\"192.38\" x2=\"403.63\" y2=\"192.38\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-21\" x1=\"223.91\" y1=\"192.26\" x2=\"353.6\" y2=\"192.26\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-22\" x1=\"262.34\" y1=\"328.22\" x2=\"290.96\" y2=\"328.22\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-23\" x1=\"262.1\" y1=\"284.6\" x2=\"290.96\" y2=\"284.6\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-24\" x1=\"85.97\" y1=\"284.48\" x2=\"247.13\" y2=\"284.48\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-25\" x1=\"149.42\" y1=\"192.26\" x2=\"207.89\" y2=\"192.26\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-26\" x1=\"12.9\" y1=\"284.48\" x2=\"71.37\" y2=\"284.48\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-27\" x1=\"487.64\" y1=\"444.79\" x2=\"524.96\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-28\" x1=\"487.64\" y1=\"486.72\" x2=\"524.96\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-29\" x1=\"534.59\" y1=\"486.72\" x2=\"571.9\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-30\" x1=\"441.14\" y1=\"444.79\" x2=\"478.46\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-31\" x1=\"441.14\" y1=\"486.72\" x2=\"478.46\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-32\" x1=\"394.73\" y1=\"444.79\" x2=\"432.04\" y2=\"444.79\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-33\" x1=\"394.73\" y1=\"486.72\" x2=\"432.04\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-34\" x1=\"350.07\" y1=\"486.72\" x2=\"387.39\" y2=\"486.72\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003clinearGradient id=\"未命名的渐变_12-35\" x1=\"487.64\" y1=\"402.86\" x2=\"524.96\" y2=\"402.86\" xlink:href=\"#未命名的渐变_12\"/\u003e\u003c/defs\u003e\u003ctitle\u003e未标题-1\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"/\u003e\u003cpath d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"/\u003e\u003cpath d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"/\u003e\u003cpath d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"/\u003e\u003cpath class=\"cls-7\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"/\u003e\u003cpath class=\"cls-8\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"/\u003e\u003cpath class=\"cls-9\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-10\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-11\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"/\u003e\u003cpath class=\"cls-12\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"/\u003e\u003cpath class=\"cls-13\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-14\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-15\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-16\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-17\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-18\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"/\u003e\u003cpath class=\"cls-19\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"/\u003e\u003cpath class=\"cls-20\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"/\u003e\u003cpath class=\"cls-21\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"/\u003e\u003cpath class=\"cls-22\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"/\u003e\u003cpath class=\"cls-23\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-24\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"/\u003e\u003cpath class=\"cls-25\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"/\u003e\u003cpath class=\"cls-26\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-27\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"/\u003e\u003cpath class=\"cls-28\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"/\u003e\u003crect class=\"cls-29\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-30\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-31\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-32\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-33\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-34\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-35\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-36\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-37\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 916.9 916.9\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003e未标题-1\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"/\u003e\u003crect class=\"cls-1\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/fabedge/v1.0.0/v1.0.0/model.json b/server/meshmodel/fabedge/v1.0.0/v1.0.0/model.json new file mode 100644 index 00000000000..9056365c4cb --- /dev/null +++ b/server/meshmodel/fabedge/v1.0.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Runtime" + }, + "displayName": "Fabedge", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#0550b2", + "secondaryColor": "#1e62ba", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 916.9 916.9\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:url(#未命名的渐变_12-2);}.cls-3{fill:url(#未命名的渐变_12-3);}.cls-4{fill:url(#未命名的渐变_21);}.cls-5{fill:url(#未命名的渐变_21-2);}.cls-6{fill:url(#未命名的渐变_12-4);}.cls-7{fill:url(#未命名的渐变_12-5);}.cls-8{fill:url(#未命名的渐变_12-6);}.cls-9{fill:url(#未命名的渐变_12-7);}.cls-10{fill:url(#未命名的渐变_12-8);}.cls-11{fill:url(#未命名的渐变_12-9);}.cls-12{fill:url(#未命名的渐变_12-10);}.cls-13{fill:url(#未命名的渐变_12-11);}.cls-14{fill:url(#未命名的渐变_12-12);}.cls-15{fill:url(#未命名的渐变_12-13);}.cls-16{fill:url(#未命名的渐变_12-14);}.cls-17{fill:url(#未命名的渐变_12-15);}.cls-18{fill:url(#未命名的渐变_12-16);}.cls-19{fill:url(#未命名的渐变_12-17);}.cls-20{fill:url(#未命名的渐变_12-18);}.cls-21{fill:url(#未命名的渐变_12-19);}.cls-22{fill:url(#未命名的渐变_12-20);}.cls-23{fill:url(#未命名的渐变_12-21);}.cls-24{fill:url(#未命名的渐变_12-22);}.cls-25{fill:url(#未命名的渐变_12-23);}.cls-26{fill:url(#未命名的渐变_12-24);}.cls-27{fill:url(#未命名的渐变_12-25);}.cls-28{fill:url(#未命名的渐变_12-26);}.cls-29{fill:url(#未命名的渐变_12-27);}.cls-30{fill:url(#未命名的渐变_12-28);}.cls-31{fill:url(#未命名的渐变_12-29);}.cls-32{fill:url(#未命名的渐变_12-30);}.cls-33{fill:url(#未命名的渐变_12-31);}.cls-34{fill:url(#未命名的渐变_12-32);}.cls-35{fill:url(#未命名的渐变_12-33);}.cls-36{fill:url(#未命名的渐变_12-34);}.cls-37{fill:url(#未命名的渐变_12-35);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12\" x1=\"205.61\" y1=\"491.18\" x2=\"706.67\" y2=\"491.18\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#48abf9\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#0084fe\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-2\" x1=\"458.59\" y1=\"337.06\" x2=\"627.21\" y2=\"337.06\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-3\" x1=\"293.25\" y1=\"350.85\" x2=\"421.63\" y2=\"350.85\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_21\" x1=\"142.63\" y1=\"500.22\" x2=\"430.46\" y2=\"500.22\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0054d4\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#0069e7\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_21-2\" x1=\"427.78\" y1=\"421.29\" x2=\"769.64\" y2=\"421.29\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_21\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-4\" x1=\"466.91\" y1=\"620.24\" x2=\"495.53\" y2=\"620.24\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-5\" x1=\"466.91\" y1=\"690.71\" x2=\"495.53\" y2=\"690.71\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-6\" x1=\"466.91\" y1=\"761.19\" x2=\"495.77\" y2=\"761.19\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-7\" x1=\"516.93\" y1=\"761.31\" x2=\"646.63\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-8\" x1=\"667.79\" y1=\"761.31\" x2=\"696.65\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-9\" x1=\"574.8\" y1=\"615.33\" x2=\"603.43\" y2=\"615.33\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-10\" x1=\"574.8\" y1=\"678.51\" x2=\"603.67\" y2=\"678.51\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-11\" x1=\"762.18\" y1=\"678.63\" x2=\"791.27\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-12\" x1=\"805.86\" y1=\"678.51\" x2=\"834.95\" y2=\"678.51\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-13\" x1=\"715.28\" y1=\"678.63\" x2=\"744.37\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-14\" x1=\"668.38\" y1=\"678.63\" x2=\"697.47\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-15\" x1=\"621.47\" y1=\"678.63\" x2=\"650.57\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-16\" x1=\"709.41\" y1=\"761.31\" x2=\"767.87\" y2=\"761.31\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-17\" x1=\"849.41\" y1=\"678.63\" x2=\"907.88\" y2=\"678.63\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-18\" x1=\"375\" y1=\"280.85\" x2=\"403.63\" y2=\"280.85\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-19\" x1=\"375\" y1=\"236.62\" x2=\"403.63\" y2=\"236.62\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-20\" x1=\"374.76\" y1=\"192.38\" x2=\"403.63\" y2=\"192.38\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-21\" x1=\"223.91\" y1=\"192.26\" x2=\"353.6\" y2=\"192.26\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-22\" x1=\"262.34\" y1=\"328.22\" x2=\"290.96\" y2=\"328.22\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-23\" x1=\"262.1\" y1=\"284.6\" x2=\"290.96\" y2=\"284.6\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-24\" x1=\"85.97\" y1=\"284.48\" x2=\"247.13\" y2=\"284.48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-25\" x1=\"149.42\" y1=\"192.26\" x2=\"207.89\" y2=\"192.26\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-26\" x1=\"12.9\" y1=\"284.48\" x2=\"71.37\" y2=\"284.48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-27\" x1=\"487.64\" y1=\"444.79\" x2=\"524.96\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-28\" x1=\"487.64\" y1=\"486.72\" x2=\"524.96\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-29\" x1=\"534.59\" y1=\"486.72\" x2=\"571.9\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-30\" x1=\"441.14\" y1=\"444.79\" x2=\"478.46\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-31\" x1=\"441.14\" y1=\"486.72\" x2=\"478.46\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-32\" x1=\"394.73\" y1=\"444.79\" x2=\"432.04\" y2=\"444.79\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-33\" x1=\"394.73\" y1=\"486.72\" x2=\"432.04\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-34\" x1=\"350.07\" y1=\"486.72\" x2=\"387.39\" y2=\"486.72\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_12-35\" x1=\"487.64\" y1=\"402.86\" x2=\"524.96\" y2=\"402.86\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#未命名的渐变_12\"\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003e未标题-1\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-8\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-9\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-10\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-11\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-12\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-13\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-14\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-15\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-16\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-17\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-18\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-19\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-20\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-21\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-22\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-23\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-24\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-25\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-26\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-27\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-28\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"\u003e\u003c/path\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-29\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-30\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-31\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-32\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-33\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-34\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-35\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-36\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-37\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 916.9 916.9\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003e未标题-1\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M635.75,434.78h0a13.05,13.05,0,0,0,0,26.1,44.9,44.9,0,0,1-.05,89.79H292A60.27,60.27,0,0,1,279.65,431.4a13.05,13.05,0,1,0-5.29-25.56A86.38,86.38,0,0,0,292,576.78h343.7a71,71,0,0,0,.08-142Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M467.38,343.58A13,13,0,0,0,484,335.52a60.19,60.19,0,1,1,108.78,50.1,13.05,13.05,0,1,0,22.49,13.25A86.28,86.28,0,1,0,459.31,327a13.05,13.05,0,0,0,8.07,16.6Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M306.12,392.48h.19a13,13,0,0,0,13-12.88,44.87,44.87,0,0,1,79.26-28.23,13,13,0,0,0,20-16.81,71,71,0,0,0-125.32,44.7,13.05,13.05,0,0,0,12.87,13.22Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M211.53,364.65c.94-.6,1.9-1.2,2.86-1.79A19.92,19.92,0,0,0,211.53,364.65Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M292,600.6a110.18,110.18,0,0,1-59.09-203.19c.55-.31,1.07-.64,1.58-1a19.57,19.57,0,0,0,8.46-16.12,19.7,19.7,0,0,0-2.87-10.2A19.62,19.62,0,0,0,216.42,362a18.36,18.36,0,0,0-3.07,1.54l-1.82,1.15a150,150,0,0,0-68.9,125.75c0,82.33,67,149.33,149.34,149.33H410.89a19.57,19.57,0,0,0,19.57-19.56h0a19.57,19.57,0,0,0-19.57-19.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M429.86,274.09l-1.29-3.27A18.53,18.53,0,0,0,429.86,274.09Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M462.08,278.26,461,279.4C461.37,279,461.73,278.66,462.08,278.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M687.68,382.32a148.65,148.65,0,0,0,2.5-27.12c0-82.35-67-149.34-149.33-149.34a149.25,149.25,0,0,0-107.57,45.85l-.3.32a19.57,19.57,0,0,0-4.41,18.79l1.29,3.27a19.6,19.6,0,0,0,27.08,8.33l1.58-1a20.12,20.12,0,0,0,2.47-2l1.09-1.14A109.63,109.63,0,0,1,539.68,245c60.89-.63,111.05,48.74,111.35,109.63A109.55,109.55,0,0,1,635.78,411,94.84,94.84,0,0,1,657.3,598.12a19.53,19.53,0,0,0-15.07,19h0a19.59,19.59,0,0,0,24.14,19c59.12-13.91,103.27-67.09,103.27-130.4A134.18,134.18,0,0,0,687.68,382.32Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.22,634.67a14.32,14.32,0,0,1-14.31-14.32v-.23a14.31,14.31,0,1,1,28.62,0v.23A14.31,14.31,0,0,1,481.22,634.67Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.22,728.79a14.31,14.31,0,0,1-14.31-14.31V714a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,728.79Zm0-47.06a14.31,14.31,0,0,1-14.31-14.31V667a14.31,14.31,0,1,1,28.62,0v.47A14.31,14.31,0,0,1,481.22,681.73Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M481.14,775.62h0a14.23,14.23,0,0,1-14.23-14.23h0A14.51,14.51,0,0,1,481,746.76a14.72,14.72,0,0,1,14.76,14.77A14.51,14.51,0,0,1,481.14,775.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M632.31,775.62h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62h.49a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M682.34,775.62h-.24a14.31,14.31,0,1,1,0-28.62h.24a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M589.11,629.76a14.31,14.31,0,0,1-14.31-14.31v-.24a14.32,14.32,0,1,1,28.63,0v.24A14.32,14.32,0,0,1,589.11,629.76Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M589.06,692.94h0a14.25,14.25,0,0,1-14.26-14.25h0a14.51,14.51,0,0,1,14.08-14.61,14.72,14.72,0,0,1,14.78,14.79A14.49,14.49,0,0,1,589.06,692.94Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M777,692.94h-.47a14.31,14.31,0,1,1,0-28.62H777a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M820.64,692.83h-.47a14.32,14.32,0,0,1,0-28.63h.47a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M730.05,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M683.15,692.94h-.46a14.31,14.31,0,0,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M636.25,692.94h-.46a14.31,14.31,0,1,1,0-28.62h.46a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M738.64,790.54a29.23,29.23,0,1,1,29.23-29.23A29.26,29.26,0,0,1,738.64,790.54Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,738.64,748.3Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M878.65,707.86a29.23,29.23,0,1,1,29.23-29.23A29.27,29.27,0,0,1,878.65,707.86Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,878.65,665.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.31,295.28A14.31,14.31,0,0,1,375,281v-.24a14.32,14.32,0,0,1,28.63,0V281A14.32,14.32,0,0,1,389.31,295.28Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.31,251.15A14.32,14.32,0,0,1,375,236.83v-.43a14.32,14.32,0,1,1,28.63,0v.43A14.32,14.32,0,0,1,389.31,251.15Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M389.55,206.81A14.72,14.72,0,0,1,374.76,192,14.51,14.51,0,0,1,389.37,178h0a14.26,14.26,0,0,1,14.26,14.26h0A14.51,14.51,0,0,1,389.55,206.81Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M339.29,206.57h-.5a14.31,14.31,0,1,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Zm-50.29,0h-.49a14.31,14.31,0,1,1,0-28.62H289a14.31,14.31,0,1,1,0,28.62Zm-50.28,0h-.5a14.31,14.31,0,0,1,0-28.62h.5a14.31,14.31,0,1,1,0,28.62Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M276.65,342.66a14.31,14.31,0,0,1-14.31-14.32v-.24a14.31,14.31,0,0,1,28.62,0v.24A14.32,14.32,0,0,1,276.65,342.66Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M276.88,299a14.72,14.72,0,0,1-14.78-14.78,14.51,14.51,0,0,1,14.6-14.08h0A14.25,14.25,0,0,1,291,284.43h0A14.49,14.49,0,0,1,276.88,299Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M232.81,298.8h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.43a14.32,14.32,0,1,1,0-28.63h.43a14.32,14.32,0,1,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Zm-44,0h-.44a14.32,14.32,0,0,1,0-28.63h.44a14.32,14.32,0,0,1,0,28.63Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M178.65,221.49a29.23,29.23,0,1,1,29.24-29.23A29.26,29.26,0,0,1,178.65,221.49Zm0-42.24a13,13,0,1,0,13,13A13,13,0,0,0,178.65,179.25Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M42.13,313.72a29.24,29.24,0,1,1,29.24-29.24A29.27,29.27,0,0,1,42.13,313.72Zm0-42.25a13,13,0,1,0,13,13A13,13,0,0,0,42.13,271.47Z\"\u003e\u003c/path\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"534.59\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"441.14\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"441.14\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"394.73\" y=\"428.51\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"394.73\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"350.07\" y=\"470.44\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003crect xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" x=\"487.64\" y=\"386.58\" width=\"37.32\" height=\"32.57\"\u003e\u003c/rect\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.0.0" + }, + "name": "fabedge", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Network", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/flux/v1.3.0/v1.0.0/components/Bucket.json b/server/meshmodel/flux/v1.3.0/v1.0.0/components/Bucket.json new file mode 100644 index 00000000000..a7acf3457dd --- /dev/null +++ b/server/meshmodel/flux/v1.3.0/v1.0.0/components/Bucket.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Bucket", + "schema": "{\n \"description\": \"Bucket is the Schema for the buckets API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"BucketSpec defines the desired state of an S3 compatible bucket\",\n \"properties\": {\n \"accessFrom\": {\n \"description\": \"AccessFrom defines an Access Control List for allowing cross-namespace references to this object.\",\n \"properties\": {\n \"namespaceSelectors\": {\n \"description\": \"NamespaceSelectors is the list of namespace selectors to which this ACL applies.\\nItems in this list are evaluated using a logical OR operation.\",\n \"items\": {\n \"description\": \"NamespaceSelector selects the namespaces to which this ACL applies.\\nAn empty map of MatchLabels matches all namespaces in a cluster.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"namespaceSelectors\"\n ],\n \"type\": \"object\"\n },\n \"bucketName\": {\n \"description\": \"The bucket name.\",\n \"type\": \"string\"\n },\n \"endpoint\": {\n \"description\": \"The bucket endpoint address.\",\n \"type\": \"string\"\n },\n \"ignore\": {\n \"description\": \"Ignore overrides the set of excluded patterns in the .sourceignore format\\n(which is the same as .gitignore). If not provided, a default will be used,\\nconsult the documentation for your version to find out what those are.\",\n \"type\": \"string\"\n },\n \"insecure\": {\n \"description\": \"Insecure allows connecting to a non-TLS S3 HTTP endpoint.\",\n \"type\": \"boolean\"\n },\n \"interval\": {\n \"description\": \"The interval at which to check for bucket updates.\",\n \"type\": \"string\"\n },\n \"provider\": {\n \"default\": \"generic\",\n \"description\": \"The S3 compatible storage provider name, default ('generic').\",\n \"enum\": [\n \"generic\",\n \"aws\",\n \"gcp\"\n ],\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"The bucket region.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The name of the secret containing authentication credentials\\nfor the Bucket.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"suspend\": {\n \"description\": \"This flag tells the controller to suspend the reconciliation of this source.\",\n \"type\": \"boolean\"\n },\n \"timeout\": {\n \"default\": \"60s\",\n \"description\": \"The timeout for download operations, defaults to 60s.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"bucketName\",\n \"endpoint\",\n \"interval\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Bucket\",\n \"type\": \"object\"\n}", + "version": "source.toolkit.fluxcd.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Bucket", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Flux", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v1.3.0" + }, + "name": "flux", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"/\u003e\u003cpath fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/flux/v1.3.0/v1.0.0/components/GitRepository.json b/server/meshmodel/flux/v1.3.0/v1.0.0/components/GitRepository.json new file mode 100644 index 00000000000..6d77217f0ab --- /dev/null +++ b/server/meshmodel/flux/v1.3.0/v1.0.0/components/GitRepository.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "GitRepository", + "schema": "{\n \"description\": \"GitRepository is the Schema for the gitrepositories API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"GitRepositorySpec specifies the required configuration to produce an\\nArtifact for a Git repository.\",\n \"properties\": {\n \"ignore\": {\n \"description\": \"Ignore overrides the set of excluded patterns in the .sourceignore format\\n(which is the same as .gitignore). If not provided, a default will be used,\\nconsult the documentation for your version to find out what those are.\",\n \"type\": \"string\"\n },\n \"include\": {\n \"description\": \"Include specifies a list of GitRepository resources which Artifacts\\nshould be included in the Artifact produced for this GitRepository.\",\n \"items\": {\n \"description\": \"GitRepositoryInclude specifies a local reference to a GitRepository which\\nArtifact (sub-)contents must be included, and where they should be placed.\",\n \"properties\": {\n \"fromPath\": {\n \"description\": \"FromPath specifies the path to copy contents from, defaults to the root\\nof the Artifact.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"GitRepositoryRef specifies the GitRepository which Artifact contents\\nmust be included.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"toPath\": {\n \"description\": \"ToPath specifies the path to copy contents to, defaults to the name of\\nthe GitRepositoryRef.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"interval\": {\n \"description\": \"Interval at which the GitRepository URL is checked for updates.\\nThis interval is approximate and may be subject to jitter to ensure\\nefficient use of resources.\",\n \"pattern\": \"^([0-9]+(\\\\.[0-9]+)?(ms|s|m|h))+$\",\n \"type\": \"string\"\n },\n \"proxySecretRef\": {\n \"description\": \"ProxySecretRef specifies the Secret containing the proxy configuration\\nto use while communicating with the Git server.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"recurseSubmodules\": {\n \"description\": \"RecurseSubmodules enables the initialization of all submodules within\\nthe GitRepository as cloned from the URL, using their default settings.\",\n \"type\": \"boolean\"\n },\n \"ref\": {\n \"description\": \"Reference specifies the Git reference to resolve and monitor for\\nchanges, defaults to the 'master' branch.\",\n \"properties\": {\n \"branch\": {\n \"description\": \"Branch to check out, defaults to 'master' if no other field is defined.\",\n \"type\": \"string\"\n },\n \"commit\": {\n \"description\": \"Commit SHA to check out, takes precedence over all reference fields.\\n\\n\\nThis can be combined with Branch to shallow clone the branch, in which\\nthe commit is expected to exist.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the reference to check out; takes precedence over Branch, Tag and SemVer.\\n\\n\\nIt must be a valid Git reference: https://git-scm.com/docs/git-check-ref-format#_description\\nExamples: \\\"refs/heads/main\\\", \\\"refs/tags/v0.1.0\\\", \\\"refs/pull/420/head\\\", \\\"refs/merge-requests/1/head\\\"\",\n \"type\": \"string\"\n },\n \"semver\": {\n \"description\": \"SemVer tag expression to check out, takes precedence over Tag.\",\n \"type\": \"string\"\n },\n \"tag\": {\n \"description\": \"Tag to check out, takes precedence over Branch.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the Secret containing authentication credentials for\\nthe GitRepository.\\nFor HTTPS repositories the Secret must contain 'username' and 'password'\\nfields for basic auth or 'bearerToken' field for token auth.\\nFor SSH repositories the Secret must contain 'identity'\\nand 'known_hosts' fields.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"suspend\": {\n \"description\": \"Suspend tells the controller to suspend the reconciliation of this\\nGitRepository.\",\n \"type\": \"boolean\"\n },\n \"timeout\": {\n \"default\": \"60s\",\n \"description\": \"Timeout for Git operations like cloning, defaults to 60s.\",\n \"pattern\": \"^([0-9]+(\\\\.[0-9]+)?(ms|s|m))+$\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL specifies the Git repository URL, it can be an HTTP/S or SSH address.\",\n \"pattern\": \"^(http|https|ssh)://.*$\",\n \"type\": \"string\"\n },\n \"verify\": {\n \"description\": \"Verification specifies the configuration to verify the Git commit\\nsignature(s).\",\n \"properties\": {\n \"mode\": {\n \"default\": \"HEAD\",\n \"description\": \"Mode specifies which Git object(s) should be verified.\\n\\n\\nThe variants \\\"head\\\" and \\\"HEAD\\\" both imply the same thing, i.e. verify\\nthe commit that the HEAD of the Git repository points to. The variant\\n\\\"head\\\" solely exists to ensure backwards compatibility.\",\n \"enum\": [\n \"head\",\n \"HEAD\",\n \"Tag\",\n \"TagAndHEAD\"\n ],\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the Secret containing the public keys of trusted Git\\nauthors.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"secretRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"interval\",\n \"url\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Git Repository\",\n \"type\": \"object\"\n}", + "version": "source.toolkit.fluxcd.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Git Repository", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Flux", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v1.3.0" + }, + "name": "flux", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"/\u003e\u003cpath fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/flux/v1.3.0/v1.0.0/components/HelmChart.json b/server/meshmodel/flux/v1.3.0/v1.0.0/components/HelmChart.json new file mode 100644 index 00000000000..cc1ee00941d --- /dev/null +++ b/server/meshmodel/flux/v1.3.0/v1.0.0/components/HelmChart.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "HelmChart", + "schema": "{\n \"description\": \"HelmChart is the Schema for the helmcharts API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"HelmChartSpec specifies the desired state of a Helm chart.\",\n \"properties\": {\n \"chart\": {\n \"description\": \"Chart is the name or path the Helm chart is available at in the\\nSourceRef.\",\n \"type\": \"string\"\n },\n \"ignoreMissingValuesFiles\": {\n \"description\": \"IgnoreMissingValuesFiles controls whether to silently ignore missing values\\nfiles rather than failing.\",\n \"type\": \"boolean\"\n },\n \"interval\": {\n \"description\": \"Interval at which the HelmChart SourceRef is checked for updates.\\nThis interval is approximate and may be subject to jitter to ensure\\nefficient use of resources.\",\n \"pattern\": \"^([0-9]+(\\\\.[0-9]+)?(ms|s|m|h))+$\",\n \"type\": \"string\"\n },\n \"reconcileStrategy\": {\n \"default\": \"ChartVersion\",\n \"description\": \"ReconcileStrategy determines what enables the creation of a new artifact.\\nValid values are ('ChartVersion', 'Revision').\\nSee the documentation of the values for an explanation on their behavior.\\nDefaults to ChartVersion when omitted.\",\n \"enum\": [\n \"ChartVersion\",\n \"Revision\"\n ],\n \"type\": \"string\"\n },\n \"sourceRef\": {\n \"description\": \"SourceRef is the reference to the Source the chart is available at.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent, valid values are ('HelmRepository', 'GitRepository',\\n'Bucket').\",\n \"enum\": [\n \"HelmRepository\",\n \"GitRepository\",\n \"Bucket\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"suspend\": {\n \"description\": \"Suspend tells the controller to suspend the reconciliation of this\\nsource.\",\n \"type\": \"boolean\"\n },\n \"valuesFiles\": {\n \"description\": \"ValuesFiles is an alternative list of values files to use as the chart\\nvalues (values.yaml is not included by default), expected to be a\\nrelative path in the SourceRef.\\nValues files are merged in the order of this list with the last file\\noverriding the first. Ignored when omitted.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verify\": {\n \"description\": \"Verify contains the secret name containing the trusted public keys\\nused to verify the signature and specifies which provider to use to check\\nwhether OCI image is authentic.\\nThis field is only supported when using HelmRepository source with spec.type 'oci'.\\nChart dependencies, which are not bundled in the umbrella chart artifact, are not verified.\",\n \"properties\": {\n \"matchOIDCIdentity\": {\n \"description\": \"MatchOIDCIdentity specifies the identity matching criteria to use\\nwhile verifying an OCI artifact which was signed using Cosign keyless\\nsigning. The artifact's identity is deemed to be verified if any of the\\nspecified matchers match against the identity.\",\n \"items\": {\n \"description\": \"OIDCIdentityMatch specifies options for verifying the certificate identity,\\ni.e. the issuer and the subject of the certificate.\",\n \"properties\": {\n \"issuer\": {\n \"description\": \"Issuer specifies the regex pattern to match against to verify\\nthe OIDC issuer in the Fulcio certificate. The pattern must be a\\nvalid Go regular expression.\",\n \"type\": \"string\"\n },\n \"subject\": {\n \"description\": \"Subject specifies the regex pattern to match against to verify\\nthe identity subject in the Fulcio certificate. The pattern must\\nbe a valid Go regular expression.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"issuer\",\n \"subject\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"provider\": {\n \"default\": \"cosign\",\n \"description\": \"Provider specifies the technology used to sign the OCI Artifact.\",\n \"enum\": [\n \"cosign\",\n \"notation\"\n ],\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the Kubernetes Secret containing the\\ntrusted public keys.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"provider\"\n ],\n \"type\": \"object\"\n },\n \"version\": {\n \"default\": \"*\",\n \"description\": \"Version is the chart version semver expression, ignored for charts from\\nGitRepository and Bucket sources. Defaults to latest when omitted.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"chart\",\n \"interval\",\n \"sourceRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Helm Chart\",\n \"type\": \"object\"\n}", + "version": "source.toolkit.fluxcd.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Helm Chart", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Flux", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v1.3.0" + }, + "name": "flux", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"/\u003e\u003cpath fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/flux/v1.3.0/v1.0.0/components/HelmRepository.json b/server/meshmodel/flux/v1.3.0/v1.0.0/components/HelmRepository.json new file mode 100644 index 00000000000..5821ac7de36 --- /dev/null +++ b/server/meshmodel/flux/v1.3.0/v1.0.0/components/HelmRepository.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "HelmRepository", + "schema": "{\n \"description\": \"HelmRepository is the Schema for the helmrepositories API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"HelmRepositorySpec specifies the required configuration to produce an\\nArtifact for a Helm repository index YAML.\",\n \"properties\": {\n \"accessFrom\": {\n \"description\": \"AccessFrom specifies an Access Control List for allowing cross-namespace\\nreferences to this object.\\nNOTE: Not implemented, provisional as of https://github.com/fluxcd/flux2/pull/2092\",\n \"properties\": {\n \"namespaceSelectors\": {\n \"description\": \"NamespaceSelectors is the list of namespace selectors to which this ACL applies.\\nItems in this list are evaluated using a logical OR operation.\",\n \"items\": {\n \"description\": \"NamespaceSelector selects the namespaces to which this ACL applies.\\nAn empty map of MatchLabels matches all namespaces in a cluster.\",\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"namespaceSelectors\"\n ],\n \"type\": \"object\"\n },\n \"certSecretRef\": {\n \"description\": \"CertSecretRef can be given the name of a Secret containing\\neither or both of\\n\\n\\n- a PEM-encoded client certificate (`tls.crt`) and private\\nkey (`tls.key`);\\n- a PEM-encoded CA certificate (`ca.crt`)\\n\\n\\nand whichever are supplied, will be used for connecting to the\\nregistry. The client cert and key are useful if you are\\nauthenticating with a certificate; the CA cert is useful if\\nyou are using a self-signed server certificate. The Secret must\\nbe of type `Opaque` or `kubernetes.io/tls`.\\n\\n\\nIt takes precedence over the values specified in the Secret referred\\nto by `.spec.secretRef`.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"insecure\": {\n \"description\": \"Insecure allows connecting to a non-TLS HTTP container registry.\\nThis field is only taken into account if the .spec.type field is set to 'oci'.\",\n \"type\": \"boolean\"\n },\n \"interval\": {\n \"description\": \"Interval at which the HelmRepository URL is checked for updates.\\nThis interval is approximate and may be subject to jitter to ensure\\nefficient use of resources.\",\n \"pattern\": \"^([0-9]+(\\\\.[0-9]+)?(ms|s|m|h))+$\",\n \"type\": \"string\"\n },\n \"passCredentials\": {\n \"description\": \"PassCredentials allows the credentials from the SecretRef to be passed\\non to a host that does not match the host as defined in URL.\\nThis may be required if the host of the advertised chart URLs in the\\nindex differ from the defined URL.\\nEnabling this should be done with caution, as it can potentially result\\nin credentials getting stolen in a MITM-attack.\",\n \"type\": \"boolean\"\n },\n \"provider\": {\n \"default\": \"generic\",\n \"description\": \"Provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.\\nThis field is optional, and only taken into account if the .spec.type field is set to 'oci'.\\nWhen not specified, defaults to 'generic'.\",\n \"enum\": [\n \"generic\",\n \"aws\",\n \"azure\",\n \"gcp\"\n ],\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the Secret containing authentication credentials\\nfor the HelmRepository.\\nFor HTTP/S basic auth the secret must contain 'username' and 'password'\\nfields.\\nSupport for TLS auth using the 'certFile' and 'keyFile', and/or 'caFile'\\nkeys is deprecated. Please use `.spec.certSecretRef` instead.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"suspend\": {\n \"description\": \"Suspend tells the controller to suspend the reconciliation of this\\nHelmRepository.\",\n \"type\": \"boolean\"\n },\n \"timeout\": {\n \"description\": \"Timeout is used for the index fetch operation for an HTTPS helm repository,\\nand for remote OCI Repository operations like pulling for an OCI helm\\nchart by the associated HelmChart.\\nIts default value is 60s.\",\n \"pattern\": \"^([0-9]+(\\\\.[0-9]+)?(ms|s|m))+$\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of the HelmRepository.\\nWhen this field is set to \\\"oci\\\", the URL field value must be prefixed with \\\"oci://\\\".\",\n \"enum\": [\n \"default\",\n \"oci\"\n ],\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL of the Helm repository, a valid URL contains at least a protocol and\\nhost.\",\n \"pattern\": \"^(http|https|oci)://.*$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Helm Repository\",\n \"type\": \"object\"\n}", + "version": "source.toolkit.fluxcd.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Helm Repository", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Flux", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v1.3.0" + }, + "name": "flux", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"/\u003e\u003cpath fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/flux/v1.3.0/v1.0.0/components/OCIRepository.json b/server/meshmodel/flux/v1.3.0/v1.0.0/components/OCIRepository.json new file mode 100644 index 00000000000..d35d3142058 --- /dev/null +++ b/server/meshmodel/flux/v1.3.0/v1.0.0/components/OCIRepository.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "OCIRepository", + "schema": "{\n \"description\": \"OCIRepository is the Schema for the ocirepositories API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"OCIRepositorySpec defines the desired state of OCIRepository\",\n \"properties\": {\n \"certSecretRef\": {\n \"description\": \"CertSecretRef can be given the name of a Secret containing\\neither or both of\\n\\n\\n- a PEM-encoded client certificate (`tls.crt`) and private\\nkey (`tls.key`);\\n- a PEM-encoded CA certificate (`ca.crt`)\\n\\n\\nand whichever are supplied, will be used for connecting to the\\nregistry. The client cert and key are useful if you are\\nauthenticating with a certificate; the CA cert is useful if\\nyou are using a self-signed server certificate. The Secret must\\nbe of type `Opaque` or `kubernetes.io/tls`.\\n\\n\\nNote: Support for the `caFile`, `certFile` and `keyFile` keys have\\nbeen deprecated.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"ignore\": {\n \"description\": \"Ignore overrides the set of excluded patterns in the .sourceignore format\\n(which is the same as .gitignore). If not provided, a default will be used,\\nconsult the documentation for your version to find out what those are.\",\n \"type\": \"string\"\n },\n \"insecure\": {\n \"description\": \"Insecure allows connecting to a non-TLS HTTP container registry.\",\n \"type\": \"boolean\"\n },\n \"interval\": {\n \"description\": \"Interval at which the OCIRepository URL is checked for updates.\\nThis interval is approximate and may be subject to jitter to ensure\\nefficient use of resources.\",\n \"pattern\": \"^([0-9]+(\\\\.[0-9]+)?(ms|s|m|h))+$\",\n \"type\": \"string\"\n },\n \"layerSelector\": {\n \"description\": \"LayerSelector specifies which layer should be extracted from the OCI artifact.\\nWhen not specified, the first layer found in the artifact is selected.\",\n \"properties\": {\n \"mediaType\": {\n \"description\": \"MediaType specifies the OCI media type of the layer\\nwhich should be extracted from the OCI Artifact. The\\nfirst layer matching this type is selected.\",\n \"type\": \"string\"\n },\n \"operation\": {\n \"description\": \"Operation specifies how the selected layer should be processed.\\nBy default, the layer compressed content is extracted to storage.\\nWhen the operation is set to 'copy', the layer compressed content\\nis persisted to storage as it is.\",\n \"enum\": [\n \"extract\",\n \"copy\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"provider\": {\n \"default\": \"generic\",\n \"description\": \"The provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.\\nWhen not specified, defaults to 'generic'.\",\n \"enum\": [\n \"generic\",\n \"aws\",\n \"azure\",\n \"gcp\"\n ],\n \"type\": \"string\"\n },\n \"ref\": {\n \"description\": \"The OCI reference to pull and monitor for changes,\\ndefaults to the latest tag.\",\n \"properties\": {\n \"digest\": {\n \"description\": \"Digest is the image digest to pull, takes precedence over SemVer.\\nThe value should be in the format 'sha256:\\u003cHASH\\u003e'.\",\n \"type\": \"string\"\n },\n \"semver\": {\n \"description\": \"SemVer is the range of tags to pull selecting the latest within\\nthe range, takes precedence over Tag.\",\n \"type\": \"string\"\n },\n \"semverFilter\": {\n \"description\": \"SemverFilter is a regex pattern to filter the tags within the SemVer range.\",\n \"type\": \"string\"\n },\n \"tag\": {\n \"description\": \"Tag is the image tag to pull, defaults to latest.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef contains the secret name containing the registry login\\ncredentials to resolve image metadata.\\nThe secret must be of type kubernetes.io/dockerconfigjson.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate\\nthe image pull if the service account has attached pull secrets. For more information:\\nhttps://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account\",\n \"type\": \"string\"\n },\n \"suspend\": {\n \"description\": \"This flag tells the controller to suspend the reconciliation of this source.\",\n \"type\": \"boolean\"\n },\n \"timeout\": {\n \"default\": \"60s\",\n \"description\": \"The timeout for remote OCI Repository operations like pulling, defaults to 60s.\",\n \"pattern\": \"^([0-9]+(\\\\.[0-9]+)?(ms|s|m))+$\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL is a reference to an OCI artifact repository hosted\\non a remote container registry.\",\n \"pattern\": \"^oci://.*$\",\n \"type\": \"string\"\n },\n \"verify\": {\n \"description\": \"Verify contains the secret name containing the trusted public keys\\nused to verify the signature and specifies which provider to use to check\\nwhether OCI image is authentic.\",\n \"properties\": {\n \"matchOIDCIdentity\": {\n \"description\": \"MatchOIDCIdentity specifies the identity matching criteria to use\\nwhile verifying an OCI artifact which was signed using Cosign keyless\\nsigning. The artifact's identity is deemed to be verified if any of the\\nspecified matchers match against the identity.\",\n \"items\": {\n \"description\": \"OIDCIdentityMatch specifies options for verifying the certificate identity,\\ni.e. the issuer and the subject of the certificate.\",\n \"properties\": {\n \"issuer\": {\n \"description\": \"Issuer specifies the regex pattern to match against to verify\\nthe OIDC issuer in the Fulcio certificate. The pattern must be a\\nvalid Go regular expression.\",\n \"type\": \"string\"\n },\n \"subject\": {\n \"description\": \"Subject specifies the regex pattern to match against to verify\\nthe identity subject in the Fulcio certificate. The pattern must\\nbe a valid Go regular expression.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"issuer\",\n \"subject\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"provider\": {\n \"default\": \"cosign\",\n \"description\": \"Provider specifies the technology used to sign the OCI Artifact.\",\n \"enum\": [\n \"cosign\",\n \"notation\"\n ],\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the Kubernetes Secret containing the\\ntrusted public keys.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"provider\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"interval\",\n \"url\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"OCI Repository\",\n \"type\": \"object\"\n}", + "version": "source.toolkit.fluxcd.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "OCI Repository", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Flux", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "source_uri": "git://github.com/fluxcd/source-controller/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v1.3.0" + }, + "name": "flux", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"/\u003e\u003cpath fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"/\u003e\u003cpath d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"/\u003e\u003cpath d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"/\u003e\u003cpath d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/flux/v1.3.0/v1.0.0/model.json b/server/meshmodel/flux/v1.3.0/v1.0.0/model.json new file mode 100644 index 00000000000..c175cafcd9f --- /dev/null +++ b/server/meshmodel/flux/v1.3.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "App Definition and Development" + }, + "displayName": "Flux", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#326ce5", + "secondaryColor": "#77B1FF", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#326ce5}.cls-3{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M59.72393 97.77847a10.18251 10.18251 0 0 1 0-17.07393l114.0703-74.16023a10.18258 10.18258 0 0 1 11.10024 0l114.07029 74.16023a10.1825 10.1825 0 0 1 0 17.07394l-114.07029 74.16021a10.18254 10.18254 0 0 1-11.10024 0z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#c1d2f7\" d=\"M197.35565 110.866h7.91277a6.00326 6.00326 0 0 0 5.19908-9.005l-25.92381-44.902a6.00355 6.00355 0 0 0-10.39838 0l-25.924 44.902a6.00326 6.00326 0 0 0 5.19905 9.005h7.913a6.0034 6.0034 0 0 1 6.00341 6.0034v51.2563l5.31037 3.45252a12.28743 12.28743 0 0 0 13.39445 0l5.31062-3.45252v-51.25628a6.0034 6.0034 0 0 1 6.0034-6.00341z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"48.00 -2.25 262.50 364.00\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}.cls-2{fill:none}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M178.17168 173.50075c-.1203-.01154-.2406-.0235-.36059-.03858.11991.01825.24023.0246.36059.03858zm.59967.04272a10.136 10.136 0 0 0 1.14594 0q-.57285.02673-1.14594 0zm2.10621-.0813c-.11988.01508-.24012.027-.36036.03858.1203-.01398.24054-.02033.36036-.03858zm118.08722-92.75763L184.89446 6.54433a10.18235 10.18235 0 0 0-11.10022 0L59.72393 80.70454a10.18249 10.18249 0 0 0 0 17.07392l107.61285 69.962V116.8694a6.00343 6.00343 0 0 0-6.00341-6.00342h-7.913a6.00321 6.00321 0 0 1-5.199-9.005l25.924-44.902a6.00355 6.00355 0 0 1 10.39837 0l25.92383 44.902a6.0033 6.0033 0 0 1-5.1991 9.005h-7.91278a6.00343 6.00343 0 0 0-6.00341 6.00342v50.87091l107.6125-69.96185a10.1825 10.1825 0 0 0 0-17.07392z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M173.79348 353.27108a10.12828 10.12828 0 0 0 3.45643 1.402c-2.17549-1.2312-4.38727-2.37429-6.62269-3.46036zm-6.45667-161.19546l-11.3157 7.35661a110.993 110.993 0 0 0 11.31571 6.5997zm24.01537 23.71607c9.73858 3.11505 19.81317 5.64851 30.10973 8.18655 10.92032 2.69182 21.97355 5.42717 32.81792 9.00839l-35.41606-23.02482a215.88133 215.88133 0 0 1-27.51161-9.41007zm0 62.19159v.58577c0 2.56929-2.68787 4.65195-6.00338 4.65195h-12.00855c-3.31549 0-6.00338-2.08266-6.00338-4.65195v-6.60473c-24.90538-6.40209-49.87294-14.48506-70.85945-33.8211L81.94819 247.589c22.46761 22.0509 50.27893 28.93291 79.71441 36.1886 27.17852 6.69856 55.18051 13.65144 78.68557 33.44222l14.67907-9.54334c-18.53142-16.50431-40.40962-23.68778-63.67506-29.6932zm-98.03756 22.96639l38.90829 25.29525c20.06438 5.11336 40.20029 11.24773 58.311 23.36044l14.90023-9.687c-19.7518-13.6724-42.5505-19.3134-66.41889-25.197-15.28704-3.76779-30.83479-7.6166-45.70063-13.77169zm74.02219-82.25413a124.3199 124.3199 0 0 1-21.53392-12.62006l-14.80531 9.62521a124.54057 124.54057 0 0 0 36.33923 18.708zm51.41006 16.29412c-9.1062-2.24474-18.30362-4.52388-27.39469-7.29853v13.68209q5.051 1.2853 10.17672 2.53817c29.93438 7.37818 60.8879 15.00885 85.70767 39.82861.60979.60979 1.16261 1.23989 1.752 1.85715l9.97427-6.48445a10.10425 10.10425 0 0 0 3.47529-3.79928c-1.06644-1.17252-2.144-2.34132-3.28875-3.48612-22.58513-22.5853-50.66938-29.50856-80.40251-36.83764zm-19.93295 19.93298q-3.72217-.91747-7.46168-1.85484v13.20974c25.81676 6.56181 51.80263 14.68843 73.4551 35.04069l14.52114-9.44055c-.03854-.03875-.07256-.07916-.11131-.11792-22.58546-22.58524-50.66975-29.50848-80.40325-36.83712zm-31.47711-8.58681c-16.28-5.27813-32.11777-12.39682-46.344-24.13081l-14.68176 9.5451c17.87023 15.55727 38.7844 22.67266 61.02572 28.50068z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M73.24049 254.95972c-.348-.348-.6585-.70949-.99967-1.05976l-12.51495 8.13648a10.16548 10.16548 0 0 0-1.64428 1.3968c1.05336 1.15677 2.11561 2.31024 3.24544 3.44 22.5852 22.58519 50.66968 29.50838 80.40322 36.83688 25.3425 6.24691 51.40113 12.71661 73.86454 29.60253l14.80574-9.62562c-20.86424-16.41993-45.53021-22.50891-71.45287-28.898-29.93385-7.37888-60.88738-15.00944-85.70717-39.82931z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M218.86377 209.9618l-27.51159-17.886v8.4759a215.88 215.88 0 0 0 27.51159 9.4101zm-27.51159 5.82989v11.89938c9.09108 2.77471 18.28849 5.05388 27.39469 7.29853 29.73311 7.32909 57.81738 14.25232 80.40261 36.83773 1.14474 1.14474 2.22232 2.31354 3.28875 3.48611a10.19327 10.19327 0 0 0-3.4753-13.27711l-44.6831-29.04976c-10.84437-3.58121-21.89768-6.31656-32.81794-9.00838-10.29656-2.53799-20.37113-5.07145-30.10971-8.1865zm-24.01537-9.75969a110.99292 110.99292 0 0 1-11.31571-6.59969l-10.21821 6.6432a124.31932 124.31932 0 0 0 21.53392 12.62007zm34.19212 37.87941q-5.12528-1.26352-10.17673-2.53816v11.6946q3.73686.938 7.46168 1.85485c29.73352 7.32863 57.8178 14.25187 80.40318 36.83709.03876.03876.07277.07916.11132.11792l9.66023-6.28051c-.58945-.61726-1.14225-1.24733-1.752-1.85715-24.81978-24.81979-55.7733-32.45048-85.70768-39.82864zm-34.19212-9.50272a124.54057 124.54057 0 0 1-36.33923-18.708l-10.00473 6.50436c14.22612 11.734 30.06393 18.85268 46.344 24.1308zm0 25.84203c-22.24132-5.828-43.1555-12.94341-61.02572-28.5006l-9.8338 6.39315c20.98652 19.336 45.95407 27.41893 70.85947 33.8211zm24.01537 17.73256c23.26546 6.00539 45.14367 13.18886 63.67506 29.69312l9.78-6.35823c-21.65249-20.35225-47.63835-28.47893-73.45509-35.04068zM81.94813 247.589l-9.70729 6.311c.34117.35032.65166.71178.99967 1.05976 24.81977 24.81979 55.77329 32.45043 85.70706 39.82925 25.92266 6.38909 50.58863 12.47807 71.45288 28.898l9.94772-6.46724c-23.50506-19.79078-51.507-26.74365-78.68557-33.44222-29.43548-7.25569-57.2468-14.1377-79.71447-36.18855zM61.327 266.87321c-1.12983-1.12983-2.19209-2.28328-3.24545-3.44a10.1544 10.1544 0 0 0 1.64428 15.67957l33.5887 21.83694c14.86583 6.15509 30.41359 10.0039 45.70058 13.77166 23.8684 5.88357 46.66708 11.52464 66.4189 25.197l10.1606-6.6057c-22.46332-16.88587-48.522-23.35562-73.86447-29.60253-29.73343-7.32851-57.81791-14.25175-80.40314-36.83694zm109.30024 84.33948c2.2354 1.0861 4.44718 2.22919 6.62269 3.46036a10.16012 10.16012 0 0 0 7.64543-1.402l5.63858-3.66577c-18.11065-12.11266-38.24653-18.247-58.31095-23.36044z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v1.3.0" + }, + "name": "flux", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/galoy/0.33.114/v1.0.0/components/OAuth2Client.json b/server/meshmodel/galoy/0.33.114/v1.0.0/components/OAuth2Client.json new file mode 100644 index 00000000000..61355eb862f --- /dev/null +++ b/server/meshmodel/galoy/0.33.114/v1.0.0/components/OAuth2Client.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "OAuth2Client", + "schema": "{\n \"description\": \"OAuth2Client is the Schema for the oauth2clients API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"OAuth2ClientSpec defines the desired state of OAuth2Client\",\n \"properties\": {\n \"allowedCorsOrigins\": {\n \"description\": \"AllowedCorsOrigins is an array of allowed CORS origins\",\n \"items\": {\n \"description\": \"RedirectURI represents a redirect URI for the client\",\n \"pattern\": \"\\\\w+:/?/?[^\\\\s]+\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"audience\": {\n \"description\": \"Audience is a whitelist defining the audiences this client is allowed to request tokens for\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"backChannelLogoutSessionRequired\": {\n \"default\": false,\n \"description\": \"BackChannelLogoutSessionRequired Boolean value specifying whether the RP requires that a sid (session ID) Claim be included in the Logout Token to identify the RP session with the OP when the backchannel_logout_uri is used. If omitted, the default value is false.\",\n \"type\": \"boolean\"\n },\n \"backChannelLogoutURI\": {\n \"description\": \"BackChannelLogoutURI RP URL that will cause the RP to log itself out when sent a Logout Token by the OP\",\n \"pattern\": \"(^$|^https?://.*)\",\n \"type\": \"string\"\n },\n \"clientName\": {\n \"description\": \"ClientName is the human-readable string name of the client to be presented to the end-user during authorization.\",\n \"type\": \"string\"\n },\n \"frontChannelLogoutSessionRequired\": {\n \"default\": false,\n \"description\": \"FrontChannelLogoutSessionRequired Boolean value specifying whether the RP requires that iss (issuer) and sid (session ID) query parameters be included to identify the RP session with the OP when the frontchannel_logout_uri is used\",\n \"type\": \"boolean\"\n },\n \"frontChannelLogoutURI\": {\n \"description\": \"FrontChannelLogoutURI RP URL that will cause the RP to log itself out when rendered in an iframe by the OP. An iss (issuer) query parameter and a sid (session ID) query parameter MAY be included by the OP to enable the RP to validate the request and to determine which of the potentially multiple sessions is to be logged out; if either is included, both MUST be\",\n \"pattern\": \"(^$|^https?://.*)\",\n \"type\": \"string\"\n },\n \"grantTypes\": {\n \"description\": \"GrantTypes is an array of grant types the client is allowed to use.\",\n \"items\": {\n \"description\": \"GrantType represents an OAuth 2.0 grant type\",\n \"enum\": [\n \"client_credentials\",\n \"authorization_code\",\n \"implicit\",\n \"refresh_token\"\n ],\n \"type\": \"string\"\n },\n \"maxItems\": 4,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"hydraAdmin\": {\n \"description\": \"HydraAdmin is the optional configuration to use for managing this client\",\n \"properties\": {\n \"endpoint\": {\n \"description\": \"Endpoint is the endpoint for the hydra instance on which to set up the client. This value will override the value provided to `--endpoint` (defaults to `\\\"/clients\\\"` in the application)\",\n \"pattern\": \"(^$|^/.*)\",\n \"type\": \"string\"\n },\n \"forwardedProto\": {\n \"description\": \"ForwardedProto overrides the `--forwarded-proto` flag. The value \\\"off\\\" will force this to be off even if `--forwarded-proto` is specified\",\n \"pattern\": \"(^$|https?|off)\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port is the port for the hydra instance on which to set up the client. This value will override the value provided to `--hydra-port`\",\n \"maximum\": 65535,\n \"type\": \"integer\"\n },\n \"url\": {\n \"description\": \"URL is the URL for the hydra instance on which to set up the client. This value will override the value provided to `--hydra-url`\",\n \"maxLength\": 64,\n \"pattern\": \"(^$|^https?://.*)\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"jwksUri\": {\n \"description\": \"JwksUri Define the URL where the JSON Web Key Set should be fetched from when performing the private_key_jwt client authentication method.\",\n \"pattern\": \"(^$|^https?://.*)\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata is arbitrary data\",\n \"format\": \"textarea\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"postLogoutRedirectUris\": {\n \"description\": \"PostLogoutRedirectURIs is an array of the post logout redirect URIs allowed for the application\",\n \"items\": {\n \"description\": \"RedirectURI represents a redirect URI for the client\",\n \"pattern\": \"\\\\w+:/?/?[^\\\\s]+\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"redirectUris\": {\n \"description\": \"RedirectURIs is an array of the redirect URIs allowed for the application\",\n \"items\": {\n \"description\": \"RedirectURI represents a redirect URI for the client\",\n \"pattern\": \"\\\\w+:/?/?[^\\\\s]+\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"responseTypes\": {\n \"description\": \"ResponseTypes is an array of the OAuth 2.0 response type strings that the client can use at the authorization endpoint.\",\n \"items\": {\n \"description\": \"ResponseType represents an OAuth 2.0 response type strings\",\n \"enum\": [\n \"id_token\",\n \"code\",\n \"token\",\n \"code token\",\n \"code id_token\",\n \"id_token token\",\n \"code id_token token\"\n ],\n \"type\": \"string\"\n },\n \"maxItems\": 3,\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"scope\": {\n \"description\": \"Scope is a string containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens.\",\n \"pattern\": \"([a-zA-Z0-9\\\\.\\\\*]+\\\\s?)+\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"SecretName points to the K8s secret that contains this client's ID and password\",\n \"maxLength\": 253,\n \"minLength\": 1,\n \"pattern\": \"[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\",\n \"type\": \"string\"\n },\n \"skipConsent\": {\n \"default\": false,\n \"description\": \"SkipConsent skips the consent screen for this client.\",\n \"type\": \"boolean\"\n },\n \"tokenEndpointAuthMethod\": {\n \"allOf\": [\n {\n \"enum\": [\n \"client_secret_basic\",\n \"client_secret_post\",\n \"private_key_jwt\",\n \"none\"\n ]\n },\n {\n \"enum\": [\n \"client_secret_basic\",\n \"client_secret_post\",\n \"private_key_jwt\",\n \"none\"\n ]\n }\n ],\n \"description\": \"Indication which authentication method shoud be used for the token endpoint\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"grantTypes\",\n \"scope\",\n \"secretName\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"O Auth2Client\",\n \"type\": \"object\"\n}", + "version": "hydra.ory.sh/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "O Auth2Client", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/GaloyMoney/charts/releases/download/galoy-v0.33.114/galoy-0.33.114.tgz" + }, + "model": { + "category": { + "name": "Uncategorized" + }, + "displayName": "Galoy", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "https://github.com/GaloyMoney/charts/releases/download/galoy-v0.33.114/galoy-0.33.114.tgz", + "styleOverrides": "", + "svgColor": "", + "svgComplete": "", + "svgWhite": "" + }, + "model": { + "version": "0.33.114" + }, + "name": "galoy", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "artifacthub", + "name": "Artifact Hub", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Uncategorized", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/galoy/0.33.114/v1.0.0/components/Rule.json b/server/meshmodel/galoy/0.33.114/v1.0.0/components/Rule.json new file mode 100644 index 00000000000..9c18dc0b349 --- /dev/null +++ b/server/meshmodel/galoy/0.33.114/v1.0.0/components/Rule.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "Rule", + "schema": "{\n \"description\": \"Rule is the Schema for the rules API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"RuleSpec defines the desired state of Rule\",\n \"properties\": {\n \"authenticators\": {\n \"items\": {\n \"description\": \"Authenticator represents a handler that authenticates provided credentials.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config configures the handler. Configuration keys vary per handler.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"handler\": {\n \"description\": \"Name is the name of a handler\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"handler\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"authorizer\": {\n \"description\": \"Authorizer represents a handler that authorizes the subject (\\\"user\\\") from the previously validated credentials making the request.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config configures the handler. Configuration keys vary per handler.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"handler\": {\n \"description\": \"Name is the name of a handler\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"handler\"\n ],\n \"type\": \"object\"\n },\n \"configMapName\": {\n \"description\": \"ConfigMapName points to the K8s ConfigMap that contains these rules\",\n \"maxLength\": 253,\n \"minLength\": 1,\n \"pattern\": \"[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\",\n \"type\": \"string\"\n },\n \"errors\": {\n \"items\": {\n \"description\": \"Error represents a handler that is responsible for executing logic when an error happens.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config configures the handler. Configuration keys vary per handler.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"handler\": {\n \"description\": \"Name is the name of a handler\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"handler\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"match\": {\n \"description\": \"Match defines the URL(s) that an access rule should match.\",\n \"properties\": {\n \"methods\": {\n \"description\": \"Methods represent an array of HTTP methods (e.g. GET, POST, PUT, DELETE, ...)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"url\": {\n \"description\": \"URL is the URL that should be matched. It supports regex templates.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"methods\",\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"mutators\": {\n \"items\": {\n \"description\": \"Mutator represents a handler that transforms the HTTP request before forwarding it.\",\n \"properties\": {\n \"config\": {\n \"description\": \"Config configures the handler. Configuration keys vary per handler.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"handler\": {\n \"description\": \"Name is the name of a handler\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"handler\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"upstream\": {\n \"description\": \"Upstream represents the location of a server where requests matching a rule should be forwarded to.\",\n \"properties\": {\n \"preserveHost\": {\n \"description\": \"PreserveHost includes the host and port of the url value if set to false. If true, the host and port of the ORY Oathkeeper Proxy will be used instead.\",\n \"type\": \"boolean\"\n },\n \"stripPath\": {\n \"description\": \"StripPath replaces the provided path prefix when forwarding the requested URL to the upstream URL.\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL defines the target URL for incoming requests\",\n \"maxLength\": 256,\n \"minLength\": 3,\n \"pattern\": \"^(?:https?:\\\\/\\\\/)?(?:[^@\\\\/\\\\n]+@)?(?:www\\\\.)?([^:\\\\/\\\\n]+)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"match\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Rule\",\n \"type\": \"object\"\n}", + "version": "oathkeeper.ory.sh/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Rule", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/GaloyMoney/charts/releases/download/galoy-v0.33.114/galoy-0.33.114.tgz" + }, + "model": { + "category": { + "name": "Uncategorized" + }, + "displayName": "Galoy", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "https://github.com/GaloyMoney/charts/releases/download/galoy-v0.33.114/galoy-0.33.114.tgz", + "styleOverrides": "", + "svgColor": "", + "svgComplete": "", + "svgWhite": "" + }, + "model": { + "version": "0.33.114" + }, + "name": "galoy", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "artifacthub", + "name": "Artifact Hub", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Uncategorized", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/galoy/0.33.114/v1.0.0/model.json b/server/meshmodel/galoy/0.33.114/v1.0.0/model.json new file mode 100644 index 00000000000..0d592571be0 --- /dev/null +++ b/server/meshmodel/galoy/0.33.114/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Uncategorized" + }, + "displayName": "Galoy", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "styleOverrides": "", + "svgColor": "", + "svgComplete": "", + "svgWhite": "" + }, + "model": { + "version": "0.33.114" + }, + "name": "galoy", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "artifacthub", + "name": "Artifact Hub", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Uncategorized", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/grafana-operator/2.7.9/v1.0.0/components/GrafanaConnection.json b/server/meshmodel/grafana-operator/2.7.9/v1.0.0/components/GrafanaConnection.json index 7067e21bfa7..22c2c54b3b7 100644 --- a/server/meshmodel/grafana-operator/2.7.9/v1.0.0/components/GrafanaConnection.json +++ b/server/meshmodel/grafana-operator/2.7.9/v1.0.0/components/GrafanaConnection.json @@ -137,7 +137,18 @@ "genealogy": "", "isAnnotation": false, "isNamespaced": true, - "published": false + "published": false, + "transitions": { + "connected": [ + "disconnected", + "deleted" + ], + "deleted": [], + "disconnected": [ + "connected", + "deleted" + ] + } }, "model": { "category": { diff --git a/server/meshmodel/jaeger-operator/jaeger-3.1.2/v1.0.0/components/Jaeger.json b/server/meshmodel/jaeger-operator/jaeger-3.1.2/v1.0.0/components/Jaeger.json new file mode 100644 index 00000000000..f39cc69ac16 --- /dev/null +++ b/server/meshmodel/jaeger-operator/jaeger-3.1.2/v1.0.0/components/Jaeger.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "Jaeger", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"agent\": {\n \"nullable\": true,\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"config\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"sidecarSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"strategy\": {\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"allInOne\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"config\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"metricsStorage\": {\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"strategy\": {\n \"properties\": {\n \"rollingUpdate\": {\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"tracingEnabled\": {\n \"type\": \"boolean\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"collector\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"autoscale\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"kafkaSecretName\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"maxReplicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minReplicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceType\": {\n \"type\": \"string\"\n },\n \"strategy\": {\n \"properties\": {\n \"rollingUpdate\": {\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ingester\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"autoscale\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"kafkaSecretName\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"maxReplicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minReplicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"strategy\": {\n \"properties\": {\n \"rollingUpdate\": {\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"ingress\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"hosts\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ingressClassName\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"openshift\": {\n \"properties\": {\n \"delegateUrls\": {\n \"type\": \"string\"\n },\n \"htpasswdFile\": {\n \"type\": \"string\"\n },\n \"sar\": {\n \"type\": \"string\"\n },\n \"skipLogout\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"pathType\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"security\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"tls\": {\n \"items\": {\n \"properties\": {\n \"hosts\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"query\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"grpcNodePort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"metricsStorage\": {\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"nodePort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceType\": {\n \"type\": \"string\"\n },\n \"strategy\": {\n \"properties\": {\n \"rollingUpdate\": {\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"tracingEnabled\": {\n \"type\": \"boolean\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"sampling\": {\n \"properties\": {\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"storage\": {\n \"properties\": {\n \"cassandraCreateSchema\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"datacenter\": {\n \"type\": \"string\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"string\"\n },\n \"timeout\": {\n \"type\": \"string\"\n },\n \"traceTTL\": {\n \"type\": \"string\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"dependencies\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cassandraClientAuthEnabled\": {\n \"type\": \"boolean\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"elasticsearchClientNodeOnly\": {\n \"type\": \"boolean\"\n },\n \"elasticsearchNodesWanOnly\": {\n \"type\": \"boolean\"\n },\n \"elasticsearchTimeRange\": {\n \"type\": \"string\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"javaOpts\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"sparkMaster\": {\n \"type\": \"string\"\n },\n \"successfulJobsHistoryLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"elasticsearch\": {\n \"properties\": {\n \"doNotProvision\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nodeCount\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"proxyResources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"redundancyPolicy\": {\n \"enum\": [\n \"FullRedundancy\",\n \"MultipleRedundancy\",\n \"SingleRedundancy\",\n \"ZeroRedundancy\"\n ],\n \"type\": \"string\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storage\": {\n \"properties\": {\n \"size\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"storageClassName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"useCertManagement\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"esIndexCleaner\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"numberOfDays\": {\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"successfulJobsHistoryLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"esRollover\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"conditions\": {\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"readTTL\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"nullable\": true,\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"successfulJobsHistoryLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"grpcPlugin\": {\n \"properties\": {\n \"image\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"strategy\": {\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"ui\": {\n \"properties\": {\n \"options\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Jaeger\",\n \"type\": \"object\"\n}", + "version": "jaegertracing.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Jaeger", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/jaegertracing/helm-charts/main/charts/jaeger-operator/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Jaeger Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#67cfe3", + "secondaryColor": "#ACFFFF", + "shape": "circle", + "source_uri": "git://github.com/jaegertracing/helm-charts/main/charts/jaeger-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 449.70001 512.20001\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#221f1f;}.cls-2,.cls-7{fill:none;}.cls-3{fill:#fff;}.cls-4{fill:#67cfe3;}.cls-5{fill:#dfcaa3;}.cls-6{fill:#648c1a;}.cls-7{stroke:#dfcaa3;stroke-linecap:round;stroke-linejoin:round;stroke-width:0;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.86432,496.156c-5.906,1.28554-10.39046,3.72107-10.01635,5.44s5.46523,2.07033,11.371.78479c5.906-1.28532,10.39047-3.72085,10.01613-5.43981C91.861,495.222,86.7701,494.87065,80.86432,496.156Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M55.96457,494.75672c-6.337.50454-11.36432,2.2895-11.22921,3.98684s5.38162,2.66428,11.71859,2.15973c6.33675-.50454,11.3641-2.28949,11.229-3.98683S62.30132,494.25218,55.96457,494.75672Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M35.63913,492.92093c-4.21781.57455-7.491,2.11159-7.31105,3.4328.18014,1.32144,3.74515,1.92653,7.963,1.352,4.21781-.57477,7.491-2.11158,7.311-3.433C43.42194,492.95148,39.85694,492.34616,35.63913,492.92093Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M20.72942,491.06686c-4.07267.5915-7.24863,1.93679-7.09345,3.005.15495,1.06795,3.5824,1.45454,7.65529.863,4.07267-.59127,7.24862-1.93656,7.09345-3.00473C28.22975,490.862,24.80231,490.47559,20.72942,491.06686Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M17.90127,490.7195c4.07289-.59127,7.24884-1.93656,7.09367-3.00472s-3.5824-1.45454-7.65529-.86327c-4.07289.59149-7.24862,1.93678-7.09367,3.005C10.40115,490.92462,13.8286,491.311,17.90127,490.7195Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M16.97691,485.70375c3.53981-.51413,6.3-1.68329,6.1653-2.61167-.13489-.92837-3.11375-1.26413-6.65334-.75023-3.53982.51391-6.3,1.68329-6.1653,2.61166C10.45845,485.88189,13.43732,486.21765,16.97691,485.70375Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M193.99476,475.52932c-6.00188,0-10.86737,1.58809-10.86737,3.547s4.86549,3.54695,10.86737,3.54695c6.00165,0,10.86713-1.58809,10.86713-3.54695S199.99641,475.52932,193.99476,475.52932Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.97549,475.06915c-4.00044,0-7.2435,1.449-7.2435,3.23637s3.24306,3.23638,7.2435,3.23638c4.00065,0,7.24372-1.449,7.24372-3.23638S225.97614,475.06915,221.97549,475.06915Z\"\u003e\u003c/path\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" cx=\"244.55743\" cy=\"475.99328\" rx=\"7.93755\" ry=\"2.61902\"\u003e\u003c/ellipse\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M261.9778,470.28749c-3.19156,0-5.7787,1.243-5.7787,2.7762s2.58714,2.7762,5.7787,2.7762,5.77893-1.243,5.77893-2.7762S265.16936,470.28749,261.9778,470.28749Z\"\u003e\u003c/path\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" cx=\"277.00568\" cy=\"469.90401\" rx=\"5.85919\" ry=\"2.69951\"\u003e\u003c/ellipse\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.34355,103.67729a.04473.04473,0,0,1-.02052-.00112l.02988.01494Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M45.75113,154.80916a14.95375,14.95375,0,0,0,.66484,5.61438A15.02674,15.02674,0,0,1,45.75113,154.80916Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.28,103.64005l.00647.00647a.04653.04653,0,0,1,.03523.00178l.00579.00491-.00379-.0058A.13218.13218,0,0,1,298.28,103.64005Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M65.24273,158.77615a37.39156,37.39156,0,0,0-2.88211-4.58435,25.884,25.884,0,0,0-1.90668-2.3022,21.40346,21.40346,0,0,1,1.90312,2.3022A37.74322,37.74322,0,0,1,65.24273,158.77615Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M53.40374,147.83945l.28493.03656c.18149.0272.36007.06867.54022.10278-.18126-.03522-.35963-.078-.54022-.10635l-.28493-.03656-.37991-.00736a9.79746,9.79746,0,0,0-1.44652.12419,9.79427,9.79427,0,0,1,1.44652-.1204Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"51.577 147.953 51.263 148.04 50.945 148.124 51.263 148.041 51.577 147.953\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.48445,103.88486a4.62684,4.62684,0,0,1,.36163,1.60347,18.89375,18.89375,0,0,1-.21872,3.54539,19.09019,19.09019,0,0,0,.22251-3.54539A4.69719,4.69719,0,0,0,298.48445,103.88486Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M299.80678,97.5325l.4274.14982-.4274-.15339-.85836-.29229a12.25519,12.25519,0,0,0-1.82286-.40911,11.82825,11.82825,0,0,1,1.82286.41268Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M70.71821,174.77141c-.0457-.31592-.10256-.67554-.18616-1.08065-.02743-.14068-.06912-.278-.09766-.41848.02787.14135.06733.28025.09409.42205C70.61387,174.097,70.67184,174.45549,70.71821,174.77141Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M277.15907,121.74355a39.98011,39.98011,0,0,1,1.24207-7.15966,35.36415,35.36415,0,0,1,4.11681-9.68371,20.91539,20.91539,0,0,1,1.89108-2.59449,20.91706,20.91706,0,0,0-1.8913,2.59449,35.3971,35.3971,0,0,0-4.12038,9.68371,40.78716,40.78716,0,0,0-1.24185,7.1561c-.08762.86929-.08048,1.56691-.09877,2.03087-.00356.231-.00156.40823.00112.53063-.00268-.12174-.00446-.29831-.00089-.53063C277.075,123.3069,277.06788,122.60928,277.15907,121.74355Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M289.75921,97.99624a14.0104,14.0104,0,0,0-3.08454,2.03489,20.94357,20.94357,0,0,0-2.26564,2.27456,20.92581,20.92581,0,0,1,2.26586-2.27456A14.009,14.009,0,0,1,289.75921,97.99624Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M294.32015,103.19081a8.94028,8.94028,0,0,0-3.7514,1.70959,20.81423,20.81423,0,0,0-3.43368,3.33492,20.82677,20.82677,0,0,1,3.43725-3.33492,8.90084,8.90084,0,0,1,3.75162-1.70959q.47322-.05787.94844-.09855l-.00245-.00022C294.95222,103.11768,294.63808,103.15067,294.32015,103.19081Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M304.55544,105.57974a20.151,20.151,0,0,1-1.311,5.52186,20.254,20.254,0,0,0,1.31475-5.52565,10.76661,10.76661,0,0,0-.229-2.79984A10.68341,10.68341,0,0,1,304.55544,105.57974Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M52.87936,154.17307l-.05262-.01047a.12584.12584,0,0,0,.051.01092Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"298.459 103.742 298.45 103.738 298.422 103.735 298.459 103.742\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M289.75921,97.99624a14.01687,14.01687,0,0,1,3.50905-1.15779A14.01393,14.01393,0,0,0,289.75921,97.99624Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.37119,103.71675l.00379.00357a.24963.24963,0,0,0,.04749.01471A.11108.11108,0,0,1,298.37119,103.71675Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"70.901 176.175 70.893 176.102 70.901 176.174 70.901 176.175\"\u003e\u003c/polygon\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"298.36 103.694 298.353 103.691 298.354 103.692 298.36 103.694\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M51.59627,170.21159c.02051.02653.03723.05574.05774.08205.23455.31391.4595.58458.66083.81912-.20066-.23432-.4245-.50543-.657-.81912C51.63885,170.26911,51.61566,170.23656,51.59627,170.21159Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M54.32431,154.96634a5.38665,5.38665,0,0,0-1.2608-.73507A5.45964,5.45964,0,0,1,54.32431,154.96634Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M52.34026,171.14286c.19463.22608.36854.42.501.579.2885.31771.453.48225.453.48225l-.00089-.00469c-.00134-.00133-.16454-.161-.45215-.48113C52.70857,171.56268,52.53489,171.36938,52.34026,171.14286Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M48.08432,164.60546c.0107.0214.01583.045.02653.06644.02341.04682.05329.08985.07692.13667-.0243-.04816-.04905-.08807-.07335-.13667C48.10416,164.65116,48.09458,164.62641,48.08432,164.60546Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M51.64309,163.51767c.4129,2.52761.86951,4.70474,1.16893,6.23888C52.5126,168.21884,52.056,166.04528,51.64309,163.51767Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"303.325 100.116 303.314 100.097 303.294 100.072 303.314 100.097 303.325 100.116\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M189.10363,288.719c-.548.06934-1.096.14247-1.65119.23388a38.3278,38.3278,0,0,0-7.878,2.18382,38.36808,38.36808,0,0,1,7.88158-2.18382C188.0076,288.865,188.55561,288.7883,189.10363,288.719Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M196.942,288.57159c-.17189-.01538-.33353-.04459-.50721-.0573q-1.83335-.12875-3.67047-.07736,1.835-.05117,3.67047.07759C196.60843,288.52723,196.77007,288.55643,196.942,288.57159Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"298.302 103.668 298.302 103.668 298.057 103.556 298.302 103.668\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M214.36657,339.52287l-2.47655-.0622-.012-.00023c-2.778-.06933-5.40592-.13823-7.57458-.13823l-.00981-.00022H204.292a33.76128,33.76128,0,0,0-4.04369.15339q-1.60124.214-3.178.57344.35817,2.32494.86149,4.62269c.02007.0923.04258.18416.0631.27646.31792,1.46123.68713,2.99291,1.13192,4.4887,1.19079,3.99619,2.8529,7.6564,5.05188,8.4782h-.00357a8.09249,8.09249,0,0,0,1.88818.40756c3.42678.36809,9.24739-.66485,9.1435-8.88576q-.00737-.58893-.05128-1.1763C214.85239,344.20576,214.58573,341.43335,214.36657,339.52287Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M193.46859,349.43667c-.01137-.05953-.0272-.11527-.039-.17458-.237-1.20015-.5333-2.35058-.84231-3.42945-.03723-.13132-.07157-.2633-.10969-.3944-.42339-1.43314-.85926-2.69794-1.2006-3.61406a83.47177,83.47177,0,0,0-14.29726,7.61249l-.18617.11682c.65548,3.03371,2.36753,8.79525,6.25092,11.243a7.878,7.878,0,0,0,6.74586.71635,5.23573,5.23573,0,0,0,3.43793-3.07139C194.28526,356.01889,194.0875,352.63291,193.46859,349.43667Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M295.23715,123.92425l.00112-.00111c.00312-.01383.2283-.993.65637-2.64712C295.46345,122.9417,295.23715,123.92425,295.23715,123.92425Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.31568,103.67573c.01583.014.02408.03076.04459.041-.02029-.01026-.02787-.02675-.0408-.0408Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M254.05118,311.24963a9.59552,9.59552,0,0,0-.44479-1.68775,11.49739,11.49739,0,0,0-1.81305-3.19513c-2.00946-2.5479-5.2396-4.78433-9.50423-6.52849-6.78354-2.77263-15.70364-4.22271-26.51259-4.31769l-4.74866-.03657a7.32238,7.32238,0,0,1,.89493,3.61629c-.08762,6.22081-8.00331,12.43806-18.76834,14.648q-.76417.16053-1.53414.29229c-7.973,1.32256-15.28538.08562-19.81176-2.80184a9.80461,9.80461,0,0,1-4.26374-4.87908l-.00044-.00112-3.89029,1.3152c-1.55577.52639-10.889,3.87-17.88813,10.1383a25.5708,25.5708,0,0,0-6.18849,7.90522,17.59325,17.59325,0,0,0-1.5736,5.2396,16.94661,16.94661,0,0,0,.48961,7.05421,16.05017,16.05017,0,0,0,3.37148,6.07055c3.83188,4.37967,10.09639,6.99512,16.752,6.99512a20.01475,20.01475,0,0,0,9.669-2.30131c1.69867-.93863,3.51417-2.07479,5.43557-3.27651,4.93126-3.09324,10.76659-6.751,17.55861-8.937a40.36893,40.36893,0,0,1,7.11262-1.61975q.33276-.0438.77588-.07669c.51635-.03835,1.17651-.062,1.91114-.078.52461-.01137,1.07129-.02052,1.7038-.02052h.00112q3.83556.02475,7.66978.14247c1.62019.04013,3.34874.08405,5.11809.11772,1.76868.03389,3.57838.05752,5.36022.05752h.00178c3.93556,0,7.28118-.1146,10.15191-.35851a33.928,33.928,0,0,0,10.92488-2.36641c7.93331-3.54472,12.37051-10.02906,12.33283-17.73719a21.20459,21.20459,0,0,0-.23432-2.69817C254.07905,311.69665,254.08931,311.47882,254.05118,311.24963Zm-6.6034,6.96257a11.16842,11.16842,0,0,1-1.356,2.95145,12.03651,12.03651,0,0,1-1.56045,1.92452,14.54158,14.54158,0,0,1-2.19942,1.80457,19.35589,19.35589,0,0,1-2.93606,1.61128c-3.93778,1.75709-11.068,2.16977-18.46513,2.16977-6.50574,0-13.21951-.31771-18.14363-.31771a43.34184,43.34184,0,0,0-5.2309.23009,50.89,50.89,0,0,0-14.6667,4.39528c-7.3057,3.36279-13.20724,7.697-17.70486,10.18335a13.77564,13.77564,0,0,1-6.56773,1.49757c-5.85584,0-12.35534-2.88166-13.97955-8.51767a10.01213,10.01213,0,0,1-.38325-2.79627,11.775,11.775,0,0,1,.10568-1.54417c1.32924-9.98447,16.81171-16.36581,20.54237-17.765.24859-.0932.44524-.16432.58168-.21292.14559-.05173.22318-.078.22318-.078,2.54611,3.14519,6.8783,6.76883,17.8879,6.76883q2.27981,0,4.96092-.223c.17167-.0136.34245-.03567.51412-.05039,1.47751-.13354,3.029-.30923,4.70184-.55582,6.46562-.95312,11.03346-3.04419,14.258-5.469a20.03462,20.03462,0,0,0,6.76549-8.78076c.2-.5168.35784-.99414.4818-1.41953a13.06625,13.06625,0,0,0,.4245-1.93746c.01226-.09564.0165-.14626.0165-.14626,22.34093.19,31.37808,6.59337,32.00636,10.37041.03567.21292.06889.43944.09809.67755a14.52864,14.52864,0,0,1,.10747,1.558A12.40964,12.40964,0,0,1,247.44778,318.2122Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M266.16128,203.5211a41.775,41.775,0,0,0-12.06149-3.08632,42.54948,42.54948,0,0,0-4.29674-.21694h-.00022a42.02785,42.02785,0,1,0,0,84.05568h.00022a42.48524,42.48524,0,0,0,4.29674-.21693,42.03759,42.03759,0,0,0,12.06149-80.53549Zm-22.03861,65.98763A13.25262,13.25262,0,1,1,257.37518,256.256,13.25266,13.25266,0,0,1,244.12267,269.50873Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M126.38181,313.94467a41.89093,41.89093,0,0,0,4.31569-.8869c.68914-.18951,1.34819-.474,2.02708-.69873,1.07574-.35673,2.16754-.67934,3.20271-1.11833.81132-.344,1.57738-.79327,2.36753-1.18878.845-.42317,1.715-.78992,2.53273-1.2715a42.08161,42.08161,0,0,0,19.67911-45.73464q-.35215-1.525-.81311-3.00651a42.03321,42.03321,0,0,0-82.16638,12.494v.00357a42.01309,42.01309,0,0,0,47.7158,41.63722C125.62734,314.12192,125.99922,314.00755,126.38181,313.94467Zm-10.613-39.89552a13.25251,13.25251,0,0,1,0,26.505l-.00179-.00022a13.25229,13.25229,0,0,1,0-26.50457Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M117.76693,455.28526c-7.196,1.64382-28.36421,13.15039-46.65766,16.64606-18.28989,3.49589-34.11772,5.34416-39.67012,7.40067-5.545,2.05652-9.86251,6.166,1.03026,10.27543,10.89278,4.11324,63.71664,5.5524,68.44345,0,4.72681-5.54861-3.25845-7.95226-14.79779-7.8098-8.21891.10234-7.21429-2.76148-7.196-3.083,0,0,.515-3.59421,13.15753-5.34394,12.61687-1.7426,68.44345-6.988,67.41318-12.94952C158.46352,454.46345,124.95937,453.64165,117.76693,455.28526Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M227.52432,461.03854h-.00022c-12.54017.61735-40.90081-.8218-44.80939,5.75685-3.905,6.57508,11.51013,9.04094,35.76511,6.988,24.25475-2.05673,58.57691-4.72681,60.01629-12.12749,1.43916-7.40067-6.37063-5.96152-7.19623-10.68833-.81823-4.72681,8.63539-4.72681,10.48366-11.71458,1.8485-6.988-12.74105-6.16619-25.69034-6.16619s-34.5304,1.23114-36.58691,8.01447c-2.05673,6.78332,9.86631,6.78332,18.29346,8.42715,8.42715,1.6436,5.96129,4.72681,5.96129,4.72681C243.34836,458.57269,240.0607,460.42118,227.52432,461.03854Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M422.05663,385.0301v.00357a30.592,30.592,0,0,1-7.78036,11.93374c-6.137,5.80813-11.51014,9.28574-16.31364,10.55679,26.53421-3.72954,42.28534-8.37587,42.28534-13.41325C440.248,390.87814,433.7313,387.80608,422.05663,385.0301Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.41945,394.111c0,3.50681,7.64169,6.81988,21.223,9.76776a67.46813,67.46813,0,0,1,.5333-19.65235C29.26581,387.20723,21.41945,390.56043,21.41945,394.111Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M376.67,377.6622c-1.68753-12.3685-6.96592-17.91711-11.616-22.8156-4.336-4.55892-8.43071-8.86547-7.11218-16.76668,1.21643-7.31305,7.03192-11.80955,16.53281-12.97849-5.77135-39.00149-14.22413-88.20549-25.09506-130.184-5.428-20.96354-14.01233-35.52388-25.526-45.204C310.67771,156.453,294.828,163.861,277.13365,171.53548q-19.1283,8.27977-38.53038,15.90452c-10.10375,10.84173-21.14257,21.52627-27.90783,24.56912a31.21262,31.21262,0,0,1-12.82132,3.03193,19.75473,19.75473,0,0,1-16.12368-7.63456,52.42567,52.42567,0,0,1-7.14874,1.50493c-1.98338.20824-4.90584.45661-8.55869.71969a11.25822,11.25822,0,0,1-1.84828,11.2252c-2.9588,3.5688-7.73309,5.36245-14.5017,5.36245-9.7312,0-23.59013-3.71126-42.11747-11.196q-3.74894-1.519-7.53222-2.95145-2.12595.01071-4.25549.01093h-.01092c-17.70531,0-31.53883-.55538-42.38412-1.44295-11.87911,24.5874-6.71755,51.86315-2.37065,74.39025,4.16787,21.592,18.62588,60.00916,32.03557,93.01613,4.97139,12.2481,9.80053,23.74352,13.90642,33.36525,36.302,3.21452,82.83925,5.13949,133.58452,5.13949,60.39264,0,114.78719-2.73607,153.09106-7.10838-2.7907-11.4845-6.32672-27.46951-6.93315-31.53147ZM266.16128,280.97093a41.79662,41.79662,0,0,1-12.06149,3.08566,42.48524,42.48524,0,0,1-4.29674.21693h-.00022a42.02785,42.02785,0,1,1,0-84.05568h.00022a42.54948,42.54948,0,0,1,4.29674.21694,42.038,42.038,0,0,1,12.06149,80.53615ZM77.52717,272.53687v-.00357a42.03492,42.03492,0,0,1,82.16638-12.494q.46052,1.48052.81311,3.00651a42.04,42.04,0,0,1-19.67911,45.73464c-.81778.48158-1.68774.84833-2.53273,1.2715-.79015.39551-1.55621.84476-2.36753,1.18878-1.03517.439-2.127.7616-3.20271,1.11833-.67889.22473-1.33794.50922-2.02708.69873a41.89093,41.89093,0,0,1-4.31569.8869c-.38259.06288-.75447.17725-1.13884.22942a42.01309,42.01309,0,0,1-47.7158-41.63722Zm112.26315,88.976a7.878,7.878,0,0,1-6.74586-.71635c-3.88339-2.44779-5.59544-8.20933-6.25092-11.243l.18617-.11682a83.47177,83.47177,0,0,1,14.29726-7.61249c.34134.91612.77721,2.18092,1.2006,3.61406.03812.1311.07246.26308.10969.3944.309,1.07887.60531,2.2293.84231,3.42945.01182.05931.02765.115.039.17458.61891,3.19624.81667,6.58222-.24034,9.00482A5.23573,5.23573,0,0,1,189.79032,361.51288Zm16.27306-3.19045a8.09249,8.09249,0,0,1-1.88818-.40756h.00357c-2.199-.8218-3.86109-4.482-5.05188-8.4782-.44479-1.49579-.814-3.02747-1.13192-4.4887-.02052-.0923-.043-.18416-.0631-.27646q-.5-2.29752-.86149-4.62269,1.57516-.35884,3.178-.57344a33.76128,33.76128,0,0,1,4.04369-.15339h.00156l.00981.00022c2.16866,0,4.79659.0689,7.57458.13823l.012.00023,2.47655.0622c.21916,1.91048.48582,4.68289.789,8.7375q.04415.58725.05128,1.1763C215.31077,357.65758,209.49016,358.69052,206.06338,358.32243Zm35.94793-25.96279a33.928,33.928,0,0,1-10.92488,2.36641c-2.87073.24391-6.21635.35851-10.15191.35851h-.00178c-1.78184,0-3.59154-.02363-5.36022-.05752-1.76935-.03367-3.4979-.07759-5.11809-.11772q-3.83389-.11772-7.66978-.14247h-.00112c-.63251,0-1.17919.00915-1.7038.02052-.73463.01605-1.39479.03968-1.91114.078q-.44278.03277-.77588.07669a40.36893,40.36893,0,0,0-7.11262,1.61975c-6.792,2.186-12.62735,5.8438-17.55861,8.937-1.9214,1.20172-3.7369,2.33788-5.43557,3.27651a20.01475,20.01475,0,0,1-9.669,2.30131c-6.65557,0-12.92008-2.61545-16.752-6.99512a16.05017,16.05017,0,0,1-3.37148-6.07055,16.94661,16.94661,0,0,1-.48961-7.05421,17.59325,17.59325,0,0,1,1.5736-5.2396A25.5708,25.5708,0,0,1,145.766,317.812c6.99914-6.2683,16.33236-9.61191,17.88813-10.1383l3.89029-1.3152a7.22014,7.22014,0,0,1-.29586-1.16158c-.88311-5.335,4.28715-10.86134,12.32592-14.06026a38.3278,38.3278,0,0,1,7.878-2.18382c.55516-.09141,1.10317-.16454,1.65119-.23388q1.8233-.23074,3.66065-.282,1.835-.05117,3.67047.07736c.17368.01271.33532.04192.50721.0573,5.867.52082,10.68878,2.52159,13.16979,5.552a8.53683,8.53683,0,0,1,.91611,1.36045l4.74866.03657c10.80895.095,19.72905,1.54506,26.51259,4.31769,4.26463,1.74416,7.49477,3.98059,9.50423,6.52849a11.49739,11.49739,0,0,1,1.81305,3.19513,9.59552,9.59552,0,0,1,.44479,1.68775c.03813.22919.02787.447.05864.67465a21.20459,21.20459,0,0,1,.23432,2.69817C254.38182,322.33058,249.94462,328.81492,242.01131,332.35964Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M304.33026,102.77611a7.92079,7.92079,0,0,0-.2205-1.03561,5.36251,5.36251,0,0,0-.482-1.09581l-.30322-.52884-.01092-.01895-.0194-.02475-.39708-.50142a6.91464,6.91464,0,0,0-2.04558-1.60347l-.16075-.08406-.0767-.04392-.30321-.12775-.02564-.01092-.05106-.01829-.4274-.14982-.85836-.29229a11.82825,11.82825,0,0,0-1.82286-.41268,16.60171,16.60171,0,0,0-1.91405-.14626,18.4614,18.4614,0,0,0-1.94325.15718,14.01078,14.01078,0,0,0-6.59337,3.19268,20.91808,20.91808,0,0,0-4.15694,4.86905,35.36415,35.36415,0,0,0-4.11681,9.68371,39.98011,39.98011,0,0,0-1.24207,7.15966c-.09119.86573-.084,1.56335-.10211,2.02731-.00357.23232-.00179.40889.00089.53063.00267.12507.00624.19263.00624.19263l1.315-2.38894c.83652-1.50492,2.00546-3.63813,3.452-6.09663a61.08309,61.08309,0,0,1,5.304-7.77323,20.81423,20.81423,0,0,1,3.43368-3.33492,8.94028,8.94028,0,0,1,3.7514-1.70959c.31793-.04014.63207-.07313.94978-.09877l.00245.00022.00134-.00022c.32506.03656.64656,0,.97519.05863.33242.08027.66128.0767,1.00462.18617l.80352.21916.24458.1117c-.01338-.0078-.02831-.01628-.02608-.02163l.01092.00045-.00647-.00647a.13218.13218,0,0,0,.0437.00736l.00379.0058c.01672.00847.03233.0185.02966.02475l-.0136-.00067.00936.01382.00713.00312.02587.00781.0729.03656-.00914-.00089.00936.00468-.03656-.00736a.24963.24963,0,0,1-.04749-.01471.42157.42157,0,0,1,.10947.16454,4.69719,4.69719,0,0,1,.36542,1.60347,19.09019,19.09019,0,0,1-.22251,3.54539c-.04659.33777-.07491.67688-.132,1.00975-.25573,1.53792-.58079,3.03192-.90586,4.42-.65749,2.77621-1.2822,5.13593-1.69488,6.81253-.42807,1.65409-.65325,2.63329-.65637,2.64712a24.59877,24.59877,0,0,0,1.80323-2.081,42.32149,42.32149,0,0,0,4.02563-6.02707,36.664,36.664,0,0,0,2.10021-4.47487c.02809-.07469.04927-.1632.07714-.23856a20.151,20.151,0,0,0,1.311-5.52186A10.68341,10.68341,0,0,0,304.33026,102.77611Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M298.36762,103.71318l-.01828-.02207.00446.00134-.00089-.00134-.02988-.01494-.00356-.00022c.01293.014.02051.03054.0408.0408l.01092.00268.00379.00089-.00379-.00357Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"42.964 180.96 43.541 180.96 42.964 179.919 42.964 180.96\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M46.416,160.42354a27.17617,27.17617,0,0,0,1.66835,4.18192c.01026.02095.01984.0457.0301.06644.0243.0486.049.08851.07335.13667.42517.84454.89292,1.66634,1.38832,2.47031.09186.14893.18483.30879.27557.45081.544.85234,1.12368,1.68217,1.74461,2.4819.01939.025.04258.05752.06153.08205.23254.31369.45638.5848.657.81912l.02542.0301c.19463.22652.36831.41982.501.57544.28761.32016.45081.4798.45215.48113-.00134-.0078-.06956-.37255-.18728-.97341-.07692-.39239-.17056-.86527-.29408-1.46947-.29942-1.53414-.756-3.71127-1.16893-6.23888-.20445-1.26391-.39084-2.61924-.48225-3.99263-.03523-.61869-.04593-1.255-.02765-1.86811.00179-.0544-.00468-.1117-.00245-.16588a8.18343,8.18343,0,0,1,.24948-1.81974,3.0401,3.0401,0,0,1,.52952-1.13973,1.33328,1.33328,0,0,1,.5955-.34334l.19731-.03657.31771-.06577c.04838-.00758.0408.00557.02118.02163l-.01471.01092-.03568.02586a.20709.20709,0,0,1-.10969.02921l-.002-.00045-.00157.00045a.12584.12584,0,0,1-.051-.01092l.0437.02185a.443.443,0,0,0,.17546.03656l.01761.01026a5.38665,5.38665,0,0,1,1.2608.73507,20.77418,20.77418,0,0,1,3.13426,3.09747c1.01533,1.21286,2.009,2.48392,2.95144,3.75519,1.87748,2.557,3.61629,5.05187,5.14307,7.196q1.8564,2.63328,3.80646,5.19813c.94844,1.25165,1.53971,1.95975,1.541,1.96109l-.008-.07269-.06822-.58435c-.03144-.19977-.064-.45483-.10613-.74578-.04637-.31592-.10434-.67443-.18973-1.07708-.02676-.1418-.06622-.2807-.09409-.42205-.22183-1.09269-.47087-2.17824-.75982-3.25287-.07781-.28873-.17078-.57344-.25394-.8606q-.34146-1.18989-.74-2.36129c-.31971-.94777-.67889-1.88082-1.05122-2.80853-.17279-.43029-.32885-.86661-.51279-1.29223-.57455-1.32968-1.1919-2.64109-1.87391-3.92061a37.74322,37.74322,0,0,0-2.88567-4.58435,21.40346,21.40346,0,0,0-1.90312-2.3022,19.07684,19.07684,0,0,0-2.29039-2.09219A11.25,11.25,0,0,0,56.608,148.834a10.05412,10.05412,0,0,0-1.80525-.74243c-.18638-.045-.38147-.07536-.57387-.11282-.18015-.03411-.35873-.07558-.54022-.10278l-.28493-.03656-.37991-.00714a9.79427,9.79427,0,0,0-1.44652.1204l-.31414.08784-.3177.08383-.41648.12418-.12061.05128-.24458.10947a7.05077,7.05077,0,0,0-3.2803,2.83462,7.75366,7.75366,0,0,0-.78412,1.7825,8.28838,8.28838,0,0,0-.34825,1.78273A15.02674,15.02674,0,0,0,46.416,160.42354Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M67.49276,422.84793c9.85538,0,16.79232-5.36245,21.6616-12.32458-5.57426-12.9203-14.74294-34.69114-23.43674-57.60551a43.14336,43.14336,0,0,0-8.01447,9.58494c-7.324,11.34961-13.35484,37.76321-5.75685,51.7062C55.11334,420.02424,60.20178,422.84793,67.49276,422.84793Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M415.33908,357.39985c-5.77157-14.94-18.056-25.55166-29.86936-25.79647l-.42-.03656a39.55353,39.55353,0,0,0-5.33681-.34335c-6.43262,0-14.33,1.37361-15.41871,7.91213-.75982,4.53686,1.22735,6.86,5.42443,11.27626,4.79637,5.041,11.36053,11.95225,13.333,26.38105,2.25026,16.52188,6.283,24.90131,11.985,24.90131,2.66651,0,7.5213-1.59611,15.54646-9.19767C420.47144,383.13055,419.52166,368.22686,415.33908,357.39985Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M102.51633,287.30166a13.25246,13.25246,0,0,0,13.25072,13.25228l.00179.00022a13.25251,13.25251,0,0,0,0-26.505l-.00179.00022A13.25262,13.25262,0,0,0,102.51633,287.30166Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M244.12267,243.0035a13.25262,13.25262,0,1,0,13.25251,13.2525A13.2526,13.2526,0,0,0,244.12267,243.0035Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M319.481,122.32078c-1.68753,10.04533-4.93126,21.08058-7.07918,24.09044l-2.01638,2.82012c9.13212-4.44567,17.27791-8.6646,24.19277-12.5404,24.04317-13.4788,27.03118-19.38191,27.37809-20.87234.223-.97519-.01449-1.27841-.11682-1.40259-.26286-.32886-1.95061-1.9689-9.54481-1.9689-8.2994,0-19.91544,1.89956-32.03913,4.5295Q319.92711,119.65705,319.481,122.32078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M310.10428,149.37l-3.46669-.28493q-7.51862-.52874-15.06065-.51123c-8.9678,0-20.79208.53687-30.49407,2.83462a11.26166,11.26166,0,0,1-1.47929,12.09092c-2.37444,2.86382-6.39248,7.63433-11.20691,13.10625q13.15206-5.3358,26.17615-10.9804Q292.51156,157.88122,310.10428,149.37Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M79.82113,139.2627v-.00379a133.923,133.923,0,0,0,34.74956,4.20822c20.43781,0,63.82633-3.97078,124.81425-30.56341l1.37361-.59907a36.3938,36.3938,0,0,1,.84008-10.04534,31.4539,31.4539,0,0,1,7.32019-14.81607,49.58223,49.58223,0,0,0-1.51942-4.96046c-7.03905-3.75162-65.05724-25.36171-95.31387-25.36171a39.992,39.992,0,0,0-7.84636.672c-26.81558,5.47214-67.563,52.08968-69.02423,58.70133-.43833,2.85668-.30679,11.83519.01471,21.52626Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M173.9295,202.508a42.55732,42.55732,0,0,0,5.56333-1.15066,11.27266,11.27266,0,0,1,19.00957-8.931,11.80569,11.80569,0,0,0,2.94409-.97185c5.5524-2.64087,25.59559-24.03559,40.82434-42.35825a11.19373,11.19373,0,0,1,1.80814-1.73145c-34.79348,15.035-83.4129,31.46548-129.70537,31.46548a165.05073,165.05073,0,0,1-21.0623-1.27841l1.01533,2.988L88.537,182.75711c-.04013.01829-1.0374.40176-2.70307,1.09581q11.17759,2.60822,30.17971,10.27186c23.15916,9.35129,32.01371,9.70935,34.22718,9.57781a11.26885,11.26885,0,0,1,10.21344-.146C166.45948,203.17285,171.13145,202.8003,173.9295,202.508Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M79.29875,205.45967a22.87731,22.87731,0,0,0-2.62638-.4274,11.17895,11.17895,0,0,1-11.91189-10.95141c-3.04285,1.72431-6.0857,3.59087-8.93481,5.56333L50.75908,203.151l-3.72576-4.90584a130.9118,130.9118,0,0,1-11.09009-17.67967C26.96807,184.8027,19.95466,189.431,18.24149,193.818a1.65218,1.65218,0,0,0,.146,1.77158C19.84876,197.73371,28.54256,204.29074,79.29875,205.45967Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M241.95669,118.8066c-24.36467,10.62613-77.762,31.10051-127.386,31.10051a140.18855,140.18855,0,0,1-36.42973-4.431q1.80825,2.73965,3.57972,5.84447A151.26672,151.26672,0,0,1,90.86373,170.699a152.44449,152.44449,0,0,0,23.50987,1.69132c28.50311,0,73.05321-6.524,134.18-34.03723.9607-3.01364,2.23933-6.78689,3.821-10.98419-.12418.00736-.2448.02921-.369.02921a9.20479,9.20479,0,0,1-1.92876-.208C246.278,126.35354,243.47254,123.25941,241.95669,118.8066Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M43.54122,180.9599a128.80816,128.80816,0,0,0,8.62067,13.3914c14.7648-10.22437,34.0738-17.60676,34.0738-17.60676s-.497-1.45744-1.42467-3.83545q-1.26714-3.25164-2.68858-6.44-1.03172-2.31558-2.13321-4.59905-.45482-.93674-.92413-1.86656l-.24837-.49317q-.56987-1.11767-1.1763-2.25383l-.13154-.24836q-2.27546-4.2623-4.946-8.29561c-5.92853-8.88732-13.44246-16.44875-21.8549-16.44518a15.72243,15.72243,0,0,0-8.20442,2.44757c-15.455,9.35128-7.47737,30.74957.4604,45.204Zm2.20991-26.15074a8.28838,8.28838,0,0,1,.34825-1.78273,7.75366,7.75366,0,0,1,.78412-1.7825,7.05077,7.05077,0,0,1,3.2803-2.83462l.24458-.10947.12061-.05128.41648-.12418.3177-.084.31414-.08762a9.79746,9.79746,0,0,1,1.44652-.12419l.37991.00736.28493.03656c.18059.02832.359.07113.54022.10635.1924.03746.38749.06778.57387.11282a10.05412,10.05412,0,0,1,1.80525.74243,11.25,11.25,0,0,1,1.55554.96337,19.07684,19.07684,0,0,1,2.29039,2.09219,25.884,25.884,0,0,1,1.90668,2.3022,37.39156,37.39156,0,0,1,2.88211,4.58435c.682,1.27952,1.29936,2.59093,1.87391,3.92061.18394.42562.34.86194.51279,1.29223.37233.92771.73151,1.86076,1.05122,2.80853q.396,1.17218.74,2.36129c.08316.28716.17613.57187.25394.8606.28895,1.07463.538,2.16018.75982,3.25287.02854.14046.07023.2778.09766.41848.0836.40511.14046.76473.18616,1.08065.04214.291.07469.546.10613.74578l.06822.58435.00847.07313-.00044-.00044c-.00134-.00134-.59261-.70944-1.541-1.96109q-1.95-2.5644-3.80646-5.19813c-1.52678-2.14414-3.26559-4.639-5.14307-7.196-.94242-1.27127-1.93611-2.54233-2.95144-3.75519a20.77418,20.77418,0,0,0-3.13426-3.09747,5.45964,5.45964,0,0,0-1.2608-.73507l-.01761-.01026a.443.443,0,0,1-.17546-.03656l-.0437-.02185.05262.01047.002.00045a.20709.20709,0,0,0,.10969-.02921l.03568-.02586.01471-.01092c.01962-.01606.0272-.02921-.02118-.02163l-.31771.06577-.19731.03657a1.33328,1.33328,0,0,0-.5955.34334,3.0401,3.0401,0,0,0-.52952,1.13973,8.18343,8.18343,0,0,0-.24948,1.81974c-.00223.05418.00424.11148.00245.16588-.01828.61312-.00758,1.24942.02765,1.86811.09141,1.37339.2778,2.72872.48225,3.99263.4129,2.52761.86951,4.70117,1.16893,6.23888.12352.6042.21716,1.07708.29408,1.46947.11772.60086.18594.96561.18728.97341l.00089.00469s-.16454-.16454-.453-.48225c-.13243-.159-.30634-.35293-.501-.579l-.02542-.0301c-.20133-.23454-.42628-.50521-.66083-.81912-.02051-.02631-.03723-.05552-.05774-.08205-.62093-.79973-1.2006-1.62956-1.74461-2.4819-.09074-.142-.18371-.30188-.27557-.45081-.4954-.804-.96315-1.62577-1.38832-2.47031-.02363-.04682-.05351-.08985-.07692-.13667-.0107-.02141-.01583-.045-.02653-.06644a27.17617,27.17617,0,0,1-1.66835-4.18192A14.95375,14.95375,0,0,1,45.75113,154.80916Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M257.82086,82.97216v-.00357a8.97445,8.97445,0,0,1,1.92876.2118c4.72681,1.04119,7.91949,5.589,8.99322,11.89741,9.00794-12.65344,18.83412-19.04971,29.33249-19.04971a21.64209,21.64209,0,0,1,11.57212,3.05756c5.53791-6.73962,9.06278-11.38595,9.06278-11.38595-4.1643.75983-12.87259,1.89577-12.87259,1.89577,32.94142-12.11657,30.2894-45.058,30.2894-45.058,0,5.68037-17.0369,19.309-17.0369,19.309.75626-4.92033-1.89219-11.36031-1.89219-11.36031.75625,6.44-19.68891,23.097-19.68891,23.097,1.51228-3.02814.37634-8.32838.37634-8.32838-1.13238,6.06007-10.22058,8.32838-10.22058,8.32838,5.68016-6.81253,16.28064-42.78208,8.32838-45.05419S277.06409,34.002,277.06409,34.002c-.37991-6.05627-3.788-6.05627-3.788-6.05627,1.51585,18.92909-13.62885,34.07379-13.62885,34.07379-1.13594-3.78439-7.196-5.67659-7.196-5.67659,1.94325,4.21179-.27044,23.39282-.94978,28.83553A10.97588,10.97588,0,0,1,257.82086,82.97216Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M249.75177,119.82951a4.39961,4.39961,0,0,0,.5041.47489c.0622.04749.128.08026.19374.12418a2.70263,2.70263,0,0,0,1.00819.4711,2.99818,2.99818,0,0,0,1.05925.01828,6.34349,6.34349,0,0,0,3.17439-1.78607q1.53-3.58073,3.21809-7.09033,1.58887-3.28743,3.21453-6.27543c1.61462-8.56248-.55894-15.59418-3.75875-16.29536a2.47615,2.47615,0,0,0-.548-.05864c-3.28386,0-8.05816,5.71672-9.92851,14.22792-1.35889,6.1769-.73039,11.66732.86952,14.73559a6.8487,6.8487,0,0,0,.96783,1.42466v.00357Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M298.34934,103.69111l.01828.02207.00357.00357a.11108.11108,0,0,0,.05128.01828l.0272.00268.00914.00089-.0729-.03656-.02587-.00781-.00624-.00178Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" points=\"298.075 82.468 298.077 82.468 298.079 82.468 298.075 82.468\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M298.07734,82.46829c-18.75318.00133-32.549,28.22575-39.75952,47.40277q-2.85334,7.59385-5.12879,15.38593a11.13807,11.13807,0,0,1,2.64466.90229c10.92577-3.26937,25.06585-4.02919,35.74325-4.02919,9.03715,0,15.5866.53709,15.5866.53709C310.00194,138.69283,326.47165,82.47141,298.07734,82.46829Zm5.16714,28.63331c-.02787.07536-.04905.16387-.07714.23856a36.664,36.664,0,0,1-2.10021,4.47487,42.32149,42.32149,0,0,1-4.02563,6.02707,24.59877,24.59877,0,0,1-1.80323,2.081l-.00112.00111s.2263-.98255.65749-2.64823c.41268-1.6766,1.03739-4.03632,1.69488-6.81253.32507-1.3881.65013-2.8821.90586-4.42.05707-.33287.08539-.672.132-1.00975a18.89375,18.89375,0,0,0,.21872-3.54539,4.62684,4.62684,0,0,0-.36163-1.60347.42157.42157,0,0,0-.10947-.16454l-.00379-.00089-.01092-.00268c-.02051-.01026-.02876-.027-.04459-.041l.00379.00022.00356.00022a.04473.04473,0,0,0,.02052.00112l.0136.00067c.00267-.00625-.01294-.01628-.02966-.02475l-.00579-.00491a.04653.04653,0,0,0-.03523-.00178l-.01092-.00045c-.00223.00535.0127.01383.02608.02163l.00067.00045-.24525-.11215-.80352-.21916c-.34334-.10947-.6722-.1059-1.00462-.18617-.32863-.05863-.65013-.02207-.97519-.05863l-.00134.00022q-.47523.0408-.94844.09855a8.90084,8.90084,0,0,0-3.75162,1.70959,20.82677,20.82677,0,0,0-3.43725,3.33492,61.08309,61.08309,0,0,0-5.304,7.77323c-1.44651,2.4585-2.61545,4.59171-3.452,6.09663l-1.315,2.38894s-.00357-.06756-.00624-.19263c-.00268-.1224-.00468-.29965-.00112-.53063.01829-.464.01115-1.16158.09877-2.03087a40.78716,40.78716,0,0,1,1.24185-7.1561,35.3971,35.3971,0,0,1,4.12038-9.68371,20.93213,20.93213,0,0,1,4.15694-4.86905,14.01285,14.01285,0,0,1,6.59359-3.19268,18.4614,18.4614,0,0,1,1.94325-.15718,16.60171,16.60171,0,0,1,1.91405.14626,12.25519,12.25519,0,0,1,1.82286.40911l.85836.29229.4274.15339.05106.01829.02564.01092.30321.12775.0767.04392.16075.08406a6.91464,6.91464,0,0,1,2.04558,1.60347l.39708.50142.0194.02452.01092.01918.30322.52884a5.36251,5.36251,0,0,1,.482,1.09581,7.92079,7.92079,0,0,1,.2205,1.03561,10.76661,10.76661,0,0,1,.229,2.79984A20.254,20.254,0,0,1,303.24448,111.1016Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M197.87769,208.22473a24.72125,24.72125,0,0,0,10.0197-2.42907c7.47-3.36056,25.70885-21.67229,46.46436-46.65053a4.454,4.454,0,0,0-6.84352-5.70245l-.00936.01137c-9.03336,10.87071-34.39886,40.00589-43.14015,44.15927l-.12418.05841a18.75549,18.75549,0,0,1-4.68668,1.48664l-3.324.52238-2.43286-2.31959a4.5007,4.5007,0,0,0-3.07563-1.22,4.45515,4.45515,0,0,0-3.74782,6.84909C187.3209,203.52356,190.52071,208.22473,197.87769,208.22473Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M153.4335,209.72252l-1.30784.69405-1.47929.08762q-.53107.0301-1.063.02921c-4.16052,0-14.38132-1.31141-36.12674-10.08926-23.97-9.68371-33.46737-11.13022-36.996-11.13022a7.06957,7.06957,0,0,0-1.24563.08762,4.44992,4.44992,0,0,0-3.58352,5.17628,4.49338,4.49338,0,0,0,4.6247,3.65285l.48938-.02943.49317.04035c2.64466.21917,11.14115,1.68017,32.88658,10.46159,17.58112,7.10126,30.89226,10.703,39.57135,10.703,4.54421,0,7.6564-.979,9.2563-2.90039a4.45888,4.45888,0,0,0-3.42633-7.30213A4.51522,4.51522,0,0,0,153.4335,209.72252Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M247.72447,312.30531c-.62828-3.777-9.66543-10.18045-32.00636-10.37041,0,0-.00424.05062-.0165.14626a13.06625,13.06625,0,0,1-.4245,1.93746c-.124.42539-.28181.90273-.4818,1.41953a20.03462,20.03462,0,0,1-6.76549,8.78076c-3.22456,2.42482-7.7924,4.51589-14.258,5.469-1.67281.24659-3.22433.42228-4.70184.55582-.17167.01472-.34245.03679-.51412.05039q-2.67978.22339-4.96092.223c-11.0096,0-15.34179-3.62364-17.8879-6.76883,0,0-.07759.02631-.22318.078-.13644.0486-.33309.11972-.58168.21292-3.73066,1.39924-19.21313,7.78058-20.54237,17.765a11.775,11.775,0,0,0-.10568,1.54417,10.01213,10.01213,0,0,0,.38325,2.79627c1.62421,5.636,8.12371,8.51767,13.97955,8.51767a13.77564,13.77564,0,0,0,6.56773-1.49757c4.49762-2.48637,10.39916-6.82056,17.70486-10.18335a50.89,50.89,0,0,1,14.6667-4.39528,43.34184,43.34184,0,0,1,5.2309-.23009c4.92412,0,11.63789.31771,18.14363.31771,7.39711,0,14.52735-.41268,18.46513-2.16977a19.35589,19.35589,0,0,0,2.93606-1.61128,14.54158,14.54158,0,0,0,2.19942-1.80457,12.03651,12.03651,0,0,0,1.56045-1.92452,11.16842,11.16842,0,0,0,1.356-2.95145,12.40964,12.40964,0,0,0,.48225-3.67135,14.52864,14.52864,0,0,0-.10747-1.558C247.79336,312.74475,247.76014,312.51823,247.72447,312.30531Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\" d=\"M215.70161,302.08116a13.06625,13.06625,0,0,1-.4245,1.93746\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M171.80855,311.2387c4.52638,2.88746,11.83877,4.1244,19.81176,2.80184q.76986-.13176,1.53414-.29229c10.765-2.2099,18.68072-8.42715,18.76834-14.648a7.32238,7.32238,0,0,0-.89493-3.61629,8.53683,8.53683,0,0,0-.91611-1.36045c-2.481-3.03037-7.3028-5.03114-13.16979-5.552-.17189-.01516-.33353-.04436-.50721-.05707q-1.83335-.12876-3.67047-.07759-1.835.05149-3.66065.282c-.548.06934-1.096.146-1.64762.23388a38.36808,38.36808,0,0,0-7.88158,2.18382c-8.03877,3.19892-13.209,8.72523-12.32592,14.06026a7.22014,7.22014,0,0,0,.29586,1.16158l.00044.00112A9.80461,9.80461,0,0,0,171.80855,311.2387Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"27.70 -2.30 447.60 509.60\" height=\"20\" width=\"20\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003esvg {enable-background:new 0 0 504 504}\u003c/style\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.st0{fill:#fff}\u003c/style\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M401.3 371.7c-1.7-12.3-6.9-17.7-11.5-22.6-4.3-4.5-8.3-8.8-7-16.6 1.2-7.2 7-11.7 16.4-12.9-5.7-38.6-14.1-87.4-24.9-129-5.4-20.8-13.9-35.2-25.3-44.8 2.1-1.1 4.1-2.1 6.1-3.2 2.7-1.4 5.3-2.8 7.7-4.2 25.2-14.1 29.3-20.9 30.2-24.8.8-3.3-.3-5.5-1.3-6.8-2.4-3-7-4.4-14.4-4.4-8.3 0-19.5 1.7-31.2 4.2-.1 2.1-.3 4.3-.6 6.7 12-2.6 23.5-4.5 31.7-4.5 7.5 0 9.2 1.6 9.5 1.9.1.1.3.4.1 1.4-.3 1.5-3.3 7.3-27.1 20.7-6.8 3.8-14.9 8-24 12.4l-.1.1h-.2c-10.5 5.1-22.4 10.5-35.2 16.1-7.6 3.3-15.2 6.5-22.6 9.5 3.6-4.1 6.7-7.8 9-10.6 4.5-5.4 3.8-13.5-1.7-18-.4-.3-.7-.6-1.1-.8 10.5-2.7 23.4-3.4 33.2-3.4 9 0 15.4.5 15.4.5 2.8-3.9 19.1-59.6-9-59.6-24.2 0-40 47.3-44 60.7-4.5-1-9.4.5-12.5 4.3-14.8 17.8-34.4 38.7-39.9 41.5-.8.3-1.4.6-1.8.7-4.1-3.4-10.2-4-15-.9-4.2 2.6-6.3 7.3-5.9 11.9-1.6.4-3 .6-3.9.8-2.1.2-5.3.5-9.4.8l-.7-.7c-4-3.3-9.4-3.8-13.8-1.6-2.4 0-11.1-.6-32.9-9.4-21.4-8.6-32-11.1-37.4-11.6 4.4-1.9 7.3-3.1 7.3-3.1s-15-44.1-35.2-44.1c-2.6 0-5.3.7-8.1 2.4-24.2 14.6 9.6 59.1 9.6 59.1 3.9-2.7 8.1-5.2 12.3-7.4-1.2 2.4-1.7 5.2-1.2 8 1 5.4 5.2 9.3 10.2 10.3-45.4-1.5-53.4-7.6-54.8-9.6-.3-.5-.5-.9-.1-1.8 1.7-4.3 8.6-8.9 17.5-13.1-1-1.8-1.9-3.8-2.8-5.8-9.8 4.7-18.3 10.3-20.7 16.6-1.1 2.7-.8 5.3.8 7.7 1.5 2.2 5.3 7.7 33.2 10.7 2.1.2 4.3.4 6.7.6-11.8 24.4-6.7 51.4-2.3 73.7 4.7 24.2 19.6 63.7 31.8 93.4 5.7 13.9 10.7 25.7 13.8 32.8 36.1 3.2 82.4 5.1 132.9 5.1 59.7 0 113.6-2.7 151.6-7-2.4-9.2-6.2-25.2-7.2-31.2 0-.3-.1-.8-.2-1.1zm-98.6-251.5c0-.5 0-1.2.1-2 .1-1.7.5-4.2 1.2-7.1.8-2.9 2-6.2 4.1-9.6 1.1-1.7 2.4-3.4 4.1-4.8.6-.6 1.4-1.1 2.1-1.5.5-.3 1.1-.6 1.6-.8.9-.4 1.8-.6 2.7-.8.6-.1 1.3-.1 1.9-.2.6 0 1.3 0 1.9.1.6.1 1.2.2 1.8.4l.3.1.6.2.3.1.1.1h.1l.3.1h.2c.1 0 1.6 1 2 1.6l.4.5.3.5c.2.3.3.6.4.9 0 .1.1.1.1.2s0 .1.1.2c.4 1.3.4 2.5.4 3.6-.1 1.1-.3 2.1-.5 3.1-.2.9-.5 1.8-.9 2.6-.6 1.7-1.4 3.1-2.1 4.4-1.4 2.6-2.9 4.6-4 6-1.1 1.4-1.8 2.1-1.8 2.1s.2-1 .6-2.6c.4-1.7 1-4 1.7-6.7.3-1.4.6-2.9.9-4.4.3-1.5.4-3.1.4-4.5 0-.2 0-.4-.1-.6-.1-.4-.2-.8-.3-1 0-.1-.1-.1-.1-.2l-.3-.1h-.2l-.6-.2c-.3-.1-.6-.1-.9-.2h-.1c-.4-.1-.7 0-1-.1-.3 0-.6.1-.9.1-.9.2-1.9.5-2.8 1.1l-.9.6c-.3.2-.6.5-.9.7-.6.5-1.2 1.1-1.7 1.7-.3.3-.5.6-.8.9-.5.6-1 1.3-1.5 1.9-1.4 2-2.7 4-3.8 5.8-1.1 1.8-2 3.5-2.7 4.8-.2.4-.5.9-.7 1.2-.8 1.5-1.3 2.4-1.3 2.4s.2-.2.2-.6zm-87.5 72.9c.2-.1.3-.2.5-.3.5-.2 1-.3 1.5-.3.4 0 .9.1 1.3.2s.8.4 1.1.6l3.6 3 4.5-1.3c1-.3 2-.7 3.1-1.1l.2-.1.2-.1c1.4-.7 3.2-2 5.2-3.7 11.1-9.3 30-31.1 37.5-40.1.7-.9 1.8-1.4 2.9-1.4.6 0 1.5.2 2.4.9 1.6 1.3 1.8 3.7.5 5.3-5.1 6.2-10.1 11.9-14.8 17.1-6.4 7.2-12.3 13.3-17.4 18.1-.5.4-.9.9-1.3 1.3-.9.8-1.7 1.6-2.6 2.3l-2.4 2.1c-1.9 1.6-3.6 2.9-5 3.8-.9.6-1.6 1-2.3 1.3-.4.2-.8.4-1.3.5-1.3.5-2.5.9-3.7 1.2-1.6.4-3.1.6-4.6.6-.9 0-1.8-.1-2.7-.2-.9-.1-1.7-.4-2.5-.7-.4-.2-.8-.3-1.2-.5-.4-.2-.7-.4-1-.6-1.9-1.2-2.8-2.5-3-2.9-.1-.2-.3-.4-.3-.7-.2-.5-.3-1-.2-1.4 0-1 .7-2.2 1.8-2.9zm55.4 135.3c-4.1 1.8-10.1 2.6-20.1 2.6h-.5c.2 2 .4 4.3.6 7.1 0 .5.1 1 .1 1.5.1 5.7-2.1 9.1-3.9 10.9-2.5 2.5-5.9 3.9-9.8 3.9-1.8 0-3.7-.3-5.1-.8-1.2-.4-2.2-1.1-3.1-1.9-1.9 3.6-4.9 5-6.7 5.5-1.5.4-3 .7-4.4.7-7.3 0-12.8-5.4-15.3-14.9l-2.1 1.2c-2.6 1.4-5.8 2.2-9.2 2.2-6.4 0-12.3-2.5-16-6.7-3-3.5-4.3-7.8-3.7-12.5 1.9-14.2 22.2-21.4 24.5-22.2l3.7-1.3c-.1-.4-.2-.7-.3-1.1 0-.2-.1-.5-.1-.7v-.9c0-.2 0-.3.1-.5v-.2c0-.2.1-.5.2-.7.1-.2.1-.5.2-.7 0-.1.1-.1.1-.2.1-.2.1-.3.2-.5 0-.1.1-.2.1-.2.1-.2.2-.3.3-.5 0-.1.1-.1.1-.2.1-.2.3-.5.4-.7.2-.2.3-.4.5-.7 0-.1.1-.1.1-.2.1-.2.3-.3.4-.5l.2-.2.5-.5.1-.1c.4-.4.9-.9 1.4-1.3.1-.1.1-.1.2-.1.2-.2.4-.3.6-.5l.2-.2c.2-.2.5-.3.7-.5.1 0 .1-.1.2-.1l.9-.6c.4-.2.7-.4 1.1-.6.1 0 .1-.1.2-.1.8-.4 1.6-.8 2.4-1.1.1 0 .2-.1.3-.1.4-.2.9-.3 1.3-.5s.9-.3 1.3-.4c.1 0 .2-.1.3-.1.5-.1.9-.3 1.4-.4.5-.1.9-.2 1.4-.3.1 0 .2-.1.4-.1.5-.1 1-.2 1.4-.3.5-.1 1.1-.2 1.6-.2.6-.1 1.1-.1 1.7-.2h.5c.4 0 .7 0 1.1-.1h3.9c.3 0 .6.1.9.1.4 0 .8.1 1.2.2.2 0 .5.1.7.1.3.1.6.1.8.2.2 0 .3.1.5.1.3.1.6.1.9.2.1 0 .3.1.4.1l.9.3c.1 0 .2.1.3.1 1.8.6 3.4 1.4 4.6 2.4.3.2.5.4.7.6l.8.8.3.3c.1.1.2.2.2.3.1.2.2.3.3.5.1.1.1.2.2.3h4.5c10.3.1 18.8 1.5 25.3 4.1 6.5 2.7 10.5 6.5 11.2 10.9 1.6 8.8-2.7 16.4-11.3 20.2zM96.9 170.1c-1-1.2-2.3-3-3.8-5.1-1.5-2.1-3.2-4.6-5.1-7.1-.9-1.3-1.9-2.5-2.9-3.7-.4-.4-.8-.9-1.2-1.3-.4-.4-.8-.8-1.2-1.1-.3-.2-.5-.4-.8-.6-.2-.2-.5-.3-.7-.5l-.6-.3h-.2.2l-.3.1h-.2c-.3.1-.4.2-.6.3-.2.2-.4.6-.5 1.1-.3 1-.3 2.5-.2 3.8.1 1.4.3 2.7.5 4 .4 2.5.9 4.7 1.2 6.2.2.8.3 1.4.4 1.8 0 .1 0 .2.1.3 0 .2.1.4.1.4s-.2-.2-.4-.5c-.3-.3-.7-.8-1.2-1.4-.7-.9-1.6-2.2-2.6-3.8-.3-.5-.6-1.1-.9-1.7-.2-.4-.4-.8-.6-1.3-.4-.9-.8-1.9-1.1-2.9-.4-1.6-.9-3.4-.7-5.6.1-.8.3-1.7.6-2.6.1-.3.3-.6.5-.9.7-1.2 2-2.3 3.3-2.8l.2-.1.1-.1.4-.1.3-.1.3-.1c.1 0 .5-.1.7-.1h1.5c.4.1.7.1 1.1.2 1 .3 1.9.7 2.6 1.2.2.2.5.3.7.5.4.3.7.6 1 .9.5.4.9.8 1.3 1.2.7.7 1.3 1.5 1.8 2.2 1.1 1.5 2 3 2.9 4.5.8 1.5 1.5 3 2.1 4.4.4.9.7 1.8 1 2.6.2.5.4 1 .5 1.5.2.6.4 1.3.6 1.8.5 1.8.8 3.3 1.1 4.4.1.6.2 1 .2 1.4v.4c0 .4.1.6.1.6s-.6-.7-1.6-2zm2.9 19c-.2-1.3.3-2.3.6-2.8s1.1-1.3 2.4-1.6c.3-.1.5-.1.8-.1h.4c.3 0 .8 0 1.3.1.4 0 .9.1 1.4.2.9.1 2 .3 3.4.6.8.2 1.7.4 2.7.6.8.2 1.6.4 2.5.7.5.2 1.1.3 1.7.5l2.1.6c.6.2 1.3.4 1.9.6.3.1.6.2 1 .3.7.2 1.4.5 2.1.7 1.4.5 3 1 4.6 1.6l2.4.9 1.5.6c2.4.9 5 1.9 7.8 3 .8.3 1.5.6 2.3.9 1 .4 1.9.7 2.8 1.1 1.5.6 2.9 1.1 4.3 1.6.8.3 1.5.5 2.3.8 5.6 2 10.1 3.3 13.8 4.1.3.1.6.1.9.2 1.7.4 3.2.7 4.6.9.1 0 .3 0 .4.1 1.9.3 3.5.4 4.7.4h2.3l1.8-.9c.5-.3 1.1-.4 1.7-.4.3 0 .7 0 1.1.2.4.1.9.3 1.3.7.3.2.5.4.6.7.2.3.4.6.5.9 0 .1 0 .1.1.2.1.3.1.5.2.7v.5c0 .2 0 .4-.1.7-.1.2-.1.5-.3.8-.1.3-.3.5-.5.8l-.3.3c-.1.1-.2.3-.4.4-.1.1-.2.1-.3.2-.3.2-.7.5-1.2.7-.6.3-1.5.6-2.5.8-.5.1-1.1.2-1.8.2-.7.1-1.4.1-2.2.1-2.1 0-4.5-.2-7.2-.7-2.7-.4-5.7-1.1-8.9-2s-6.8-2-10.6-3.3c-3.8-1.3-7.9-2.9-12.3-4.6-5.3-2.1-9.8-3.8-13.6-5.2-.5-.2-.9-.3-1.4-.5-10.5-3.6-15.5-4.5-17.5-4.7h-.1l-.6-.1h-.9c-1.7 0-3.2-1.3-3.6-3.1zm-3.5 78.4c0-27.8 22.6-50.3 50.3-50.3s50.3 22.6 50.3 50.3c0 27.8-22.6 50.3-50.3 50.3s-50.3-22.5-50.3-50.3zm179.4 20.4c-27.8 0-50.3-22.6-50.3-50.3 0-27.8 22.6-50.3 50.3-50.3s50.3 22.6 50.3 50.3c0 27.7-22.6 50.3-50.3 50.3zM95.1 416.4c9.2 0 15.9-4.8 20.6-11.1.3-.4.5-.7.8-1.1-3.2-7.5-7.7-18.1-12.6-30.1-3.4-8.4-7-17.6-10.6-26.9-2.3 2-5 5-7.9 9.5-3.2 4.9-6.1 12.8-7.8 21.2-1.5 7.6-1.9 15.6-.6 22.4.6 2.8 1.4 5.4 2.7 7.7 3.1 5.6 8.2 8.4 15.4 8.4zm-46.3-27.3c0 3.5 7.6 6.8 21.1 9.7-1-7-.4-14.1.5-19.6-13.8 3-21.6 6.3-21.6 9.9zm398.7-9.1c-.2.6-.4 1.1-.7 1.7-1.7 3.9-4 7.3-7.1 10.2-6.1 5.8-11.5 9.2-16.2 10.5 26.4-3.7 42.1-8.3 42.1-13.3.1-3.2-6.4-6.3-18.1-9.1z\" class=\"st0\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M440.4 378.5c3.7-8.6 2.4-18.9-.7-26.9-5.7-14.8-17.9-25.3-29.6-25.6h-.4s-2.3-.3-5.3-.3c-6.4 0-14.2 1.4-15.3 7.8-.7 4.5 1.2 6.8 5.4 11.2 4.8 5 11.3 11.8 13.2 26.1.1 1 .3 2 .4 3 2.3 14.4 6.1 21.7 11.4 21.7 2.6 0 7.4-1.6 15.4-9.1 2.5-2.4 4.3-5 5.5-7.9zM102.9 137.8c-.4-10.9-.6-21.6-.1-24.8 1.4-6.5 41.8-52.7 68.4-58.1 2.2-.4 4.8-.7 7.8-.7 30 0 87.4 21.4 94.4 25.1.4.9.9 2.6 1.5 4.9-3.3 3.4-5.9 8.6-7.3 14.7-1.4 6.2-1.1 12 .4 16.4-30.3 13.2-105.7 41.7-162.3 26.4 1.2 1.8 2.4 3.7 3.5 5.8 4.3 7.5 7.4 14.8 9.1 19.2 23.4 3.7 75.1 4.5 156.2-32 1.5-4.8 3.9-11.7 7.1-19.1-1.5 1.4-3 2-4.2 1.8-3.3-.7-5.5-8.2-3.5-17.1 1.9-8.4 6.6-14.1 9.8-14.1.2 0 .4 0 .5.1 3.2.7 5.3 7.7 3.7 16.1 10.6-19.6 22.6-29.5 35.6-29.5 4.4 0 8.2 1 11.5 3 5.5-6.7 9-11.3 9-11.3-4.1.7-12.8 1.9-12.8 1.9 32.6-12 30-44.6 30-44.6 0 5.6-16.9 19.1-16.9 19.1.8-4.9-1.9-11.3-1.9-11.3.7 6.4-19.5 22.9-19.5 22.9 1.5-3 .4-8.3.4-8.3-1.1 6-10.1 8.3-10.1 8.3 5.6-6.8 16.1-42.4 8.3-44.6-7.9-2.3-18.8 23.3-18.8 23.3-.4-6-3.8-6-3.8-6C300.4 44 285.4 59 285.4 59c-1.1-3.8-7.1-5.6-7.1-5.6 1.4 3 .6 13.8-.2 21.6l-.2-.2c-3.2-3.2-67.4-27-99-27-3.4 0-6.5.3-9 .8-16.7 3.4-36.6 20.6-46.9 30.6C110.6 91 97.3 106.5 96.4 112c-.4 2.9-.4 10.2-.2 18.3 2.3 2 4.5 4.6 6.7 7.5zm41.8 312.1c-7.2 1.6-28.2 13.1-46.4 16.6-18.2 3.5-34 5.3-39.5 7.4-5.5 2-9.8 6.1 1 10.2s63.4 5.5 68.1 0c4.7-5.5-3.2-7.9-14.7-7.8-8.2.1-7.2-2.7-7.2-3.1 0 0 .5-3.6 13.1-5.3 12.6-1.7 68.1-7 67.1-12.9s-34.3-6.7-41.5-5.1z\" class=\"st0\"\u003e\u003c/path\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"108.7\" cy=\"493.7\" class=\"st0\" rx=\"10.9\" ry=\"3.2\" transform=\"rotate(-12.285 108.609 493.667)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"83.5\" cy=\"492.3\" class=\"st0\" rx=\"11.5\" ry=\"3.1\" transform=\"rotate(-4.542 83.463 492.308) scale(1.00004)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"63.3\" cy=\"489.8\" class=\"st0\" rx=\"7.7\" ry=\"2.4\" transform=\"rotate(-7.765 63.331 489.89)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"48.4\" cy=\"487.5\" class=\"st0\" rx=\"7.4\" ry=\"1.9\" transform=\"rotate(-8.27 48.382 487.623)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"45.1\" cy=\"483.3\" class=\"st0\" rx=\"7.4\" ry=\"1.9\" transform=\"rotate(-8.27 45.007 483.428)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"44.2\" cy=\"478.5\" class=\"st0\" rx=\"6.4\" ry=\"1.7\" transform=\"rotate(-8.27 44.156 478.58)\"\u003e\u003c/ellipse\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M253.9 455.7c-12.5.6-40.7-.8-44.6 5.7-3.9 6.5 11.5 9 35.6 7s58.3-4.7 59.7-12.1c1.4-7.4-6.3-5.9-7.2-10.6-.8-4.7 8.6-4.7 10.4-11.7 1.8-7-12.7-6.1-25.6-6.1s-34.4 1.2-36.4 8 9.8 6.8 18.2 8.4c8.4 1.6 5.9 4.7 5.9 4.7-.2 4.2-3.5 6.1-16 6.7z\" class=\"st0\"\u003e\u003c/path\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"220.6\" cy=\"473.6\" class=\"st0\" rx=\"10.8\" ry=\"3.5\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"248.4\" cy=\"472.9\" class=\"st0\" rx=\"7.2\" ry=\"3.2\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"270.9\" cy=\"470.6\" class=\"st0\" rx=\"7.9\" ry=\"2.6\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"288.2\" cy=\"467.6\" class=\"st0\" rx=\"5.8\" ry=\"2.8\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"303.2\" cy=\"464.5\" class=\"st0\" rx=\"5.8\" ry=\"2.7\"\u003e\u003c/ellipse\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M146.7 225.9c-10.8 0-20.6 4.1-28 10.8-.5.4-1 .9-1.4 1.4-7.5 7.5-12.2 17.9-12.2 29.4 0 4.3.7 8.5 1.9 12.4.4 1.3.9 2.6 1.4 3.8.5 1.2 1.1 2.5 1.8 3.6 1 1.8 2 3.5 3.2 5.1 7.6 10.2 19.7 16.7 33.4 16.7 23 0 41.6-18.6 41.6-41.6s-18.8-41.6-41.7-41.6zm-3.8 69.4c-3.6 0-6.9-1.5-9.3-3.8-.5-.5-.9-1-1.3-1.5-.3-.4-.5-.7-.7-1.1-.5-.8-.8-1.6-1.1-2.5-.1-.2-.1-.4-.2-.6-.3-1.1-.5-2.3-.5-3.6 0-7.2 5.9-13.1 13.1-13.1 5.9 0 10.9 3.9 12.5 9.2.4 1.2.6 2.5.6 3.9 0 7.2-5.8 13.1-13.1 13.1zM290 198.4c-2.5-.9-5.2-1.6-8-2-2.1-.3-4.2-.5-6.3-.5-9.3 0-18 3.1-24.9 8.3-3.2 2.4-6.1 5.2-8.5 8.5-1.2 1.6-2.3 3.3-3.2 5.1l-1.8 3.6c-.5 1.2-1 2.5-1.4 3.8-1.2 3.9-1.9 8.1-1.9 12.4 0 5 .9 9.9 2.5 14.3.2.6.5 1.3.7 1.9 1.1 2.5 2.3 4.9 3.8 7.1.4.6.8 1.1 1.2 1.6.8 1.1 1.7 2.1 2.5 3.1 1.3 1.5 2.8 2.9 4.3 4.1 7.2 5.9 16.4 9.5 26.5 9.5 23 0 41.6-18.6 41.6-41.6.2-18-11.2-33.3-27.1-39.2zm-14.8 65.1c-1.6.7-3.3 1-5.1 1-1.4 0-2.7-.2-3.9-.6-1.5-.5-3-1.2-4.2-2.2-.4-.3-.8-.7-1.2-1-.3-.3-.6-.6-.8-.9-.4-.5-.8-1.1-1.2-1.7-.3-.5-.6-1-.8-1.6-.3-.7-.5-1.4-.7-2.1-.2-1-.4-1.9-.4-3 0-.5 0-.9.1-1.3 0-.4.1-.9.2-1.3 1-4.7 4.4-8.5 9-9.9 1.2-.4 2.5-.6 3.9-.6 1.8 0 3.5.4 5.1 1 .8.3 1.5.7 2.2 1.2.4.2.7.5 1 .8 2.9 2.4 4.8 6.1 4.8 10.1 0 5.4-3.3 10.1-8 12.1zm-51 80.8c-.4-1-.7-2-.9-2.8-.9-3.1-1.6-6.3-2-8.7-1.1.4-2.2.8-3.3 1.3-3.7 1.8-7 3.8-10 5.7-.1 0-.1.1-.2.1.8 3.7 3.3 11.8 9.8 11.8.8 0 1.7-.1 2.6-.4 3-1 4-3.8 4-7zm8.9-13.6c-1.9 0-3.3.1-4.2.2-.6.1-1.1.2-1.7.3.4 2.3 1 5.5 1.9 8.5 1.1 3.8 2.7 7.3 4.8 8.1.6.2 1.7.4 2.9.4 3.3 0 7.7-1.5 7.6-8.5v-1.1c-.3-3.4-.5-5.8-.7-7.6-1.1 0-2.3-.1-3.3-.1-2.6-.1-5.2-.2-7.3-.2z\" class=\"st0\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M245.5 299.4s-1.2 14-20.9 16.9c-3.7.6-6.9.8-9.7.8-10.5 0-14.6-3.5-17.1-6.5 0 0-18.9 6.4-20.4 17.2-1.1 8.1 6.7 12.3 13.6 12.3 2.3 0 4.5-.5 6.3-1.4 6.9-3.8 17.2-12.1 30.9-13.9 1.2-.2 3-.2 5-.2 4.7 0 11.1.3 17.3.3 7.1 0 13.9-.4 17.6-2.1 8.5-3.8 8.5-10.3 7.9-13.5-.6-3.6-9.2-9.7-30.5-9.9z\" class=\"st0\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "jaeger-3.1.2" + }, + "name": "jaeger-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Tracing", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#67cfe3", + "secondaryColor": "#ACFFFF", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 449.70001 512.20001\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#221f1f;}.cls-2,.cls-7{fill:none;}.cls-3{fill:#fff;}.cls-4{fill:#67cfe3;}.cls-5{fill:#dfcaa3;}.cls-6{fill:#648c1a;}.cls-7{stroke:#dfcaa3;stroke-linecap:round;stroke-linejoin:round;stroke-width:0;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M80.86432,496.156c-5.906,1.28554-10.39046,3.72107-10.01635,5.44s5.46523,2.07033,11.371.78479c5.906-1.28532,10.39047-3.72085,10.01613-5.43981C91.861,495.222,86.7701,494.87065,80.86432,496.156Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M55.96457,494.75672c-6.337.50454-11.36432,2.2895-11.22921,3.98684s5.38162,2.66428,11.71859,2.15973c6.33675-.50454,11.3641-2.28949,11.229-3.98683S62.30132,494.25218,55.96457,494.75672Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M35.63913,492.92093c-4.21781.57455-7.491,2.11159-7.31105,3.4328.18014,1.32144,3.74515,1.92653,7.963,1.352,4.21781-.57477,7.491-2.11158,7.311-3.433C43.42194,492.95148,39.85694,492.34616,35.63913,492.92093Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M20.72942,491.06686c-4.07267.5915-7.24863,1.93679-7.09345,3.005.15495,1.06795,3.5824,1.45454,7.65529.863,4.07267-.59127,7.24862-1.93656,7.09345-3.00473C28.22975,490.862,24.80231,490.47559,20.72942,491.06686Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M17.90127,490.7195c4.07289-.59127,7.24884-1.93656,7.09367-3.00472s-3.5824-1.45454-7.65529-.86327c-4.07289.59149-7.24862,1.93678-7.09367,3.005C10.40115,490.92462,13.8286,491.311,17.90127,490.7195Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M16.97691,485.70375c3.53981-.51413,6.3-1.68329,6.1653-2.61167-.13489-.92837-3.11375-1.26413-6.65334-.75023-3.53982.51391-6.3,1.68329-6.1653,2.61166C10.45845,485.88189,13.43732,486.21765,16.97691,485.70375Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M193.99476,475.52932c-6.00188,0-10.86737,1.58809-10.86737,3.547s4.86549,3.54695,10.86737,3.54695c6.00165,0,10.86713-1.58809,10.86713-3.54695S199.99641,475.52932,193.99476,475.52932Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M221.97549,475.06915c-4.00044,0-7.2435,1.449-7.2435,3.23637s3.24306,3.23638,7.2435,3.23638c4.00065,0,7.24372-1.449,7.24372-3.23638S225.97614,475.06915,221.97549,475.06915Z\"/\u003e\u003cellipse class=\"cls-1\" cx=\"244.55743\" cy=\"475.99328\" rx=\"7.93755\" ry=\"2.61902\"/\u003e\u003cpath class=\"cls-1\" d=\"M261.9778,470.28749c-3.19156,0-5.7787,1.243-5.7787,2.7762s2.58714,2.7762,5.7787,2.7762,5.77893-1.243,5.77893-2.7762S265.16936,470.28749,261.9778,470.28749Z\"/\u003e\u003cellipse class=\"cls-1\" cx=\"277.00568\" cy=\"469.90401\" rx=\"5.85919\" ry=\"2.69951\"/\u003e\u003cpath class=\"cls-2\" d=\"M298.34355,103.67729a.04473.04473,0,0,1-.02052-.00112l.02988.01494Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M45.75113,154.80916a14.95375,14.95375,0,0,0,.66484,5.61438A15.02674,15.02674,0,0,1,45.75113,154.80916Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M298.28,103.64005l.00647.00647a.04653.04653,0,0,1,.03523.00178l.00579.00491-.00379-.0058A.13218.13218,0,0,1,298.28,103.64005Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M65.24273,158.77615a37.39156,37.39156,0,0,0-2.88211-4.58435,25.884,25.884,0,0,0-1.90668-2.3022,21.40346,21.40346,0,0,1,1.90312,2.3022A37.74322,37.74322,0,0,1,65.24273,158.77615Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M53.40374,147.83945l.28493.03656c.18149.0272.36007.06867.54022.10278-.18126-.03522-.35963-.078-.54022-.10635l-.28493-.03656-.37991-.00736a9.79746,9.79746,0,0,0-1.44652.12419,9.79427,9.79427,0,0,1,1.44652-.1204Z\"/\u003e\u003cpolygon class=\"cls-2\" points=\"51.577 147.953 51.263 148.04 50.945 148.124 51.263 148.041 51.577 147.953\"/\u003e\u003cpath class=\"cls-2\" d=\"M298.48445,103.88486a4.62684,4.62684,0,0,1,.36163,1.60347,18.89375,18.89375,0,0,1-.21872,3.54539,19.09019,19.09019,0,0,0,.22251-3.54539A4.69719,4.69719,0,0,0,298.48445,103.88486Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M299.80678,97.5325l.4274.14982-.4274-.15339-.85836-.29229a12.25519,12.25519,0,0,0-1.82286-.40911,11.82825,11.82825,0,0,1,1.82286.41268Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M70.71821,174.77141c-.0457-.31592-.10256-.67554-.18616-1.08065-.02743-.14068-.06912-.278-.09766-.41848.02787.14135.06733.28025.09409.42205C70.61387,174.097,70.67184,174.45549,70.71821,174.77141Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M277.15907,121.74355a39.98011,39.98011,0,0,1,1.24207-7.15966,35.36415,35.36415,0,0,1,4.11681-9.68371,20.91539,20.91539,0,0,1,1.89108-2.59449,20.91706,20.91706,0,0,0-1.8913,2.59449,35.3971,35.3971,0,0,0-4.12038,9.68371,40.78716,40.78716,0,0,0-1.24185,7.1561c-.08762.86929-.08048,1.56691-.09877,2.03087-.00356.231-.00156.40823.00112.53063-.00268-.12174-.00446-.29831-.00089-.53063C277.075,123.3069,277.06788,122.60928,277.15907,121.74355Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M289.75921,97.99624a14.0104,14.0104,0,0,0-3.08454,2.03489,20.94357,20.94357,0,0,0-2.26564,2.27456,20.92581,20.92581,0,0,1,2.26586-2.27456A14.009,14.009,0,0,1,289.75921,97.99624Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M294.32015,103.19081a8.94028,8.94028,0,0,0-3.7514,1.70959,20.81423,20.81423,0,0,0-3.43368,3.33492,20.82677,20.82677,0,0,1,3.43725-3.33492,8.90084,8.90084,0,0,1,3.75162-1.70959q.47322-.05787.94844-.09855l-.00245-.00022C294.95222,103.11768,294.63808,103.15067,294.32015,103.19081Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M304.55544,105.57974a20.151,20.151,0,0,1-1.311,5.52186,20.254,20.254,0,0,0,1.31475-5.52565,10.76661,10.76661,0,0,0-.229-2.79984A10.68341,10.68341,0,0,1,304.55544,105.57974Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M52.87936,154.17307l-.05262-.01047a.12584.12584,0,0,0,.051.01092Z\"/\u003e\u003cpolygon class=\"cls-2\" points=\"298.459 103.742 298.45 103.738 298.422 103.735 298.459 103.742\"/\u003e\u003cpath class=\"cls-2\" d=\"M289.75921,97.99624a14.01687,14.01687,0,0,1,3.50905-1.15779A14.01393,14.01393,0,0,0,289.75921,97.99624Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M298.37119,103.71675l.00379.00357a.24963.24963,0,0,0,.04749.01471A.11108.11108,0,0,1,298.37119,103.71675Z\"/\u003e\u003cpolygon class=\"cls-2\" points=\"70.901 176.175 70.893 176.102 70.901 176.174 70.901 176.175\"/\u003e\u003cpolygon class=\"cls-2\" points=\"298.36 103.694 298.353 103.691 298.354 103.692 298.36 103.694\"/\u003e\u003cpath class=\"cls-2\" d=\"M51.59627,170.21159c.02051.02653.03723.05574.05774.08205.23455.31391.4595.58458.66083.81912-.20066-.23432-.4245-.50543-.657-.81912C51.63885,170.26911,51.61566,170.23656,51.59627,170.21159Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M54.32431,154.96634a5.38665,5.38665,0,0,0-1.2608-.73507A5.45964,5.45964,0,0,1,54.32431,154.96634Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M52.34026,171.14286c.19463.22608.36854.42.501.579.2885.31771.453.48225.453.48225l-.00089-.00469c-.00134-.00133-.16454-.161-.45215-.48113C52.70857,171.56268,52.53489,171.36938,52.34026,171.14286Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M48.08432,164.60546c.0107.0214.01583.045.02653.06644.02341.04682.05329.08985.07692.13667-.0243-.04816-.04905-.08807-.07335-.13667C48.10416,164.65116,48.09458,164.62641,48.08432,164.60546Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M51.64309,163.51767c.4129,2.52761.86951,4.70474,1.16893,6.23888C52.5126,168.21884,52.056,166.04528,51.64309,163.51767Z\"/\u003e\u003cpolygon class=\"cls-2\" points=\"303.325 100.116 303.314 100.097 303.294 100.072 303.314 100.097 303.325 100.116\"/\u003e\u003cpath class=\"cls-2\" d=\"M189.10363,288.719c-.548.06934-1.096.14247-1.65119.23388a38.3278,38.3278,0,0,0-7.878,2.18382,38.36808,38.36808,0,0,1,7.88158-2.18382C188.0076,288.865,188.55561,288.7883,189.10363,288.719Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M196.942,288.57159c-.17189-.01538-.33353-.04459-.50721-.0573q-1.83335-.12875-3.67047-.07736,1.835-.05117,3.67047.07759C196.60843,288.52723,196.77007,288.55643,196.942,288.57159Z\"/\u003e\u003cpolygon class=\"cls-2\" points=\"298.302 103.668 298.302 103.668 298.057 103.556 298.302 103.668\"/\u003e\u003cpath class=\"cls-2\" d=\"M214.36657,339.52287l-2.47655-.0622-.012-.00023c-2.778-.06933-5.40592-.13823-7.57458-.13823l-.00981-.00022H204.292a33.76128,33.76128,0,0,0-4.04369.15339q-1.60124.214-3.178.57344.35817,2.32494.86149,4.62269c.02007.0923.04258.18416.0631.27646.31792,1.46123.68713,2.99291,1.13192,4.4887,1.19079,3.99619,2.8529,7.6564,5.05188,8.4782h-.00357a8.09249,8.09249,0,0,0,1.88818.40756c3.42678.36809,9.24739-.66485,9.1435-8.88576q-.00737-.58893-.05128-1.1763C214.85239,344.20576,214.58573,341.43335,214.36657,339.52287Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M193.46859,349.43667c-.01137-.05953-.0272-.11527-.039-.17458-.237-1.20015-.5333-2.35058-.84231-3.42945-.03723-.13132-.07157-.2633-.10969-.3944-.42339-1.43314-.85926-2.69794-1.2006-3.61406a83.47177,83.47177,0,0,0-14.29726,7.61249l-.18617.11682c.65548,3.03371,2.36753,8.79525,6.25092,11.243a7.878,7.878,0,0,0,6.74586.71635,5.23573,5.23573,0,0,0,3.43793-3.07139C194.28526,356.01889,194.0875,352.63291,193.46859,349.43667Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M295.23715,123.92425l.00112-.00111c.00312-.01383.2283-.993.65637-2.64712C295.46345,122.9417,295.23715,123.92425,295.23715,123.92425Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M298.31568,103.67573c.01583.014.02408.03076.04459.041-.02029-.01026-.02787-.02675-.0408-.0408Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M254.05118,311.24963a9.59552,9.59552,0,0,0-.44479-1.68775,11.49739,11.49739,0,0,0-1.81305-3.19513c-2.00946-2.5479-5.2396-4.78433-9.50423-6.52849-6.78354-2.77263-15.70364-4.22271-26.51259-4.31769l-4.74866-.03657a7.32238,7.32238,0,0,1,.89493,3.61629c-.08762,6.22081-8.00331,12.43806-18.76834,14.648q-.76417.16053-1.53414.29229c-7.973,1.32256-15.28538.08562-19.81176-2.80184a9.80461,9.80461,0,0,1-4.26374-4.87908l-.00044-.00112-3.89029,1.3152c-1.55577.52639-10.889,3.87-17.88813,10.1383a25.5708,25.5708,0,0,0-6.18849,7.90522,17.59325,17.59325,0,0,0-1.5736,5.2396,16.94661,16.94661,0,0,0,.48961,7.05421,16.05017,16.05017,0,0,0,3.37148,6.07055c3.83188,4.37967,10.09639,6.99512,16.752,6.99512a20.01475,20.01475,0,0,0,9.669-2.30131c1.69867-.93863,3.51417-2.07479,5.43557-3.27651,4.93126-3.09324,10.76659-6.751,17.55861-8.937a40.36893,40.36893,0,0,1,7.11262-1.61975q.33276-.0438.77588-.07669c.51635-.03835,1.17651-.062,1.91114-.078.52461-.01137,1.07129-.02052,1.7038-.02052h.00112q3.83556.02475,7.66978.14247c1.62019.04013,3.34874.08405,5.11809.11772,1.76868.03389,3.57838.05752,5.36022.05752h.00178c3.93556,0,7.28118-.1146,10.15191-.35851a33.928,33.928,0,0,0,10.92488-2.36641c7.93331-3.54472,12.37051-10.02906,12.33283-17.73719a21.20459,21.20459,0,0,0-.23432-2.69817C254.07905,311.69665,254.08931,311.47882,254.05118,311.24963Zm-6.6034,6.96257a11.16842,11.16842,0,0,1-1.356,2.95145,12.03651,12.03651,0,0,1-1.56045,1.92452,14.54158,14.54158,0,0,1-2.19942,1.80457,19.35589,19.35589,0,0,1-2.93606,1.61128c-3.93778,1.75709-11.068,2.16977-18.46513,2.16977-6.50574,0-13.21951-.31771-18.14363-.31771a43.34184,43.34184,0,0,0-5.2309.23009,50.89,50.89,0,0,0-14.6667,4.39528c-7.3057,3.36279-13.20724,7.697-17.70486,10.18335a13.77564,13.77564,0,0,1-6.56773,1.49757c-5.85584,0-12.35534-2.88166-13.97955-8.51767a10.01213,10.01213,0,0,1-.38325-2.79627,11.775,11.775,0,0,1,.10568-1.54417c1.32924-9.98447,16.81171-16.36581,20.54237-17.765.24859-.0932.44524-.16432.58168-.21292.14559-.05173.22318-.078.22318-.078,2.54611,3.14519,6.8783,6.76883,17.8879,6.76883q2.27981,0,4.96092-.223c.17167-.0136.34245-.03567.51412-.05039,1.47751-.13354,3.029-.30923,4.70184-.55582,6.46562-.95312,11.03346-3.04419,14.258-5.469a20.03462,20.03462,0,0,0,6.76549-8.78076c.2-.5168.35784-.99414.4818-1.41953a13.06625,13.06625,0,0,0,.4245-1.93746c.01226-.09564.0165-.14626.0165-.14626,22.34093.19,31.37808,6.59337,32.00636,10.37041.03567.21292.06889.43944.09809.67755a14.52864,14.52864,0,0,1,.10747,1.558A12.40964,12.40964,0,0,1,247.44778,318.2122Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M266.16128,203.5211a41.775,41.775,0,0,0-12.06149-3.08632,42.54948,42.54948,0,0,0-4.29674-.21694h-.00022a42.02785,42.02785,0,1,0,0,84.05568h.00022a42.48524,42.48524,0,0,0,4.29674-.21693,42.03759,42.03759,0,0,0,12.06149-80.53549Zm-22.03861,65.98763A13.25262,13.25262,0,1,1,257.37518,256.256,13.25266,13.25266,0,0,1,244.12267,269.50873Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M126.38181,313.94467a41.89093,41.89093,0,0,0,4.31569-.8869c.68914-.18951,1.34819-.474,2.02708-.69873,1.07574-.35673,2.16754-.67934,3.20271-1.11833.81132-.344,1.57738-.79327,2.36753-1.18878.845-.42317,1.715-.78992,2.53273-1.2715a42.08161,42.08161,0,0,0,19.67911-45.73464q-.35215-1.525-.81311-3.00651a42.03321,42.03321,0,0,0-82.16638,12.494v.00357a42.01309,42.01309,0,0,0,47.7158,41.63722C125.62734,314.12192,125.99922,314.00755,126.38181,313.94467Zm-10.613-39.89552a13.25251,13.25251,0,0,1,0,26.505l-.00179-.00022a13.25229,13.25229,0,0,1,0-26.50457Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M117.76693,455.28526c-7.196,1.64382-28.36421,13.15039-46.65766,16.64606-18.28989,3.49589-34.11772,5.34416-39.67012,7.40067-5.545,2.05652-9.86251,6.166,1.03026,10.27543,10.89278,4.11324,63.71664,5.5524,68.44345,0,4.72681-5.54861-3.25845-7.95226-14.79779-7.8098-8.21891.10234-7.21429-2.76148-7.196-3.083,0,0,.515-3.59421,13.15753-5.34394,12.61687-1.7426,68.44345-6.988,67.41318-12.94952C158.46352,454.46345,124.95937,453.64165,117.76693,455.28526Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M227.52432,461.03854h-.00022c-12.54017.61735-40.90081-.8218-44.80939,5.75685-3.905,6.57508,11.51013,9.04094,35.76511,6.988,24.25475-2.05673,58.57691-4.72681,60.01629-12.12749,1.43916-7.40067-6.37063-5.96152-7.19623-10.68833-.81823-4.72681,8.63539-4.72681,10.48366-11.71458,1.8485-6.988-12.74105-6.16619-25.69034-6.16619s-34.5304,1.23114-36.58691,8.01447c-2.05673,6.78332,9.86631,6.78332,18.29346,8.42715,8.42715,1.6436,5.96129,4.72681,5.96129,4.72681C243.34836,458.57269,240.0607,460.42118,227.52432,461.03854Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M422.05663,385.0301v.00357a30.592,30.592,0,0,1-7.78036,11.93374c-6.137,5.80813-11.51014,9.28574-16.31364,10.55679,26.53421-3.72954,42.28534-8.37587,42.28534-13.41325C440.248,390.87814,433.7313,387.80608,422.05663,385.0301Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M21.41945,394.111c0,3.50681,7.64169,6.81988,21.223,9.76776a67.46813,67.46813,0,0,1,.5333-19.65235C29.26581,387.20723,21.41945,390.56043,21.41945,394.111Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M376.67,377.6622c-1.68753-12.3685-6.96592-17.91711-11.616-22.8156-4.336-4.55892-8.43071-8.86547-7.11218-16.76668,1.21643-7.31305,7.03192-11.80955,16.53281-12.97849-5.77135-39.00149-14.22413-88.20549-25.09506-130.184-5.428-20.96354-14.01233-35.52388-25.526-45.204C310.67771,156.453,294.828,163.861,277.13365,171.53548q-19.1283,8.27977-38.53038,15.90452c-10.10375,10.84173-21.14257,21.52627-27.90783,24.56912a31.21262,31.21262,0,0,1-12.82132,3.03193,19.75473,19.75473,0,0,1-16.12368-7.63456,52.42567,52.42567,0,0,1-7.14874,1.50493c-1.98338.20824-4.90584.45661-8.55869.71969a11.25822,11.25822,0,0,1-1.84828,11.2252c-2.9588,3.5688-7.73309,5.36245-14.5017,5.36245-9.7312,0-23.59013-3.71126-42.11747-11.196q-3.74894-1.519-7.53222-2.95145-2.12595.01071-4.25549.01093h-.01092c-17.70531,0-31.53883-.55538-42.38412-1.44295-11.87911,24.5874-6.71755,51.86315-2.37065,74.39025,4.16787,21.592,18.62588,60.00916,32.03557,93.01613,4.97139,12.2481,9.80053,23.74352,13.90642,33.36525,36.302,3.21452,82.83925,5.13949,133.58452,5.13949,60.39264,0,114.78719-2.73607,153.09106-7.10838-2.7907-11.4845-6.32672-27.46951-6.93315-31.53147ZM266.16128,280.97093a41.79662,41.79662,0,0,1-12.06149,3.08566,42.48524,42.48524,0,0,1-4.29674.21693h-.00022a42.02785,42.02785,0,1,1,0-84.05568h.00022a42.54948,42.54948,0,0,1,4.29674.21694,42.038,42.038,0,0,1,12.06149,80.53615ZM77.52717,272.53687v-.00357a42.03492,42.03492,0,0,1,82.16638-12.494q.46052,1.48052.81311,3.00651a42.04,42.04,0,0,1-19.67911,45.73464c-.81778.48158-1.68774.84833-2.53273,1.2715-.79015.39551-1.55621.84476-2.36753,1.18878-1.03517.439-2.127.7616-3.20271,1.11833-.67889.22473-1.33794.50922-2.02708.69873a41.89093,41.89093,0,0,1-4.31569.8869c-.38259.06288-.75447.17725-1.13884.22942a42.01309,42.01309,0,0,1-47.7158-41.63722Zm112.26315,88.976a7.878,7.878,0,0,1-6.74586-.71635c-3.88339-2.44779-5.59544-8.20933-6.25092-11.243l.18617-.11682a83.47177,83.47177,0,0,1,14.29726-7.61249c.34134.91612.77721,2.18092,1.2006,3.61406.03812.1311.07246.26308.10969.3944.309,1.07887.60531,2.2293.84231,3.42945.01182.05931.02765.115.039.17458.61891,3.19624.81667,6.58222-.24034,9.00482A5.23573,5.23573,0,0,1,189.79032,361.51288Zm16.27306-3.19045a8.09249,8.09249,0,0,1-1.88818-.40756h.00357c-2.199-.8218-3.86109-4.482-5.05188-8.4782-.44479-1.49579-.814-3.02747-1.13192-4.4887-.02052-.0923-.043-.18416-.0631-.27646q-.5-2.29752-.86149-4.62269,1.57516-.35884,3.178-.57344a33.76128,33.76128,0,0,1,4.04369-.15339h.00156l.00981.00022c2.16866,0,4.79659.0689,7.57458.13823l.012.00023,2.47655.0622c.21916,1.91048.48582,4.68289.789,8.7375q.04415.58725.05128,1.1763C215.31077,357.65758,209.49016,358.69052,206.06338,358.32243Zm35.94793-25.96279a33.928,33.928,0,0,1-10.92488,2.36641c-2.87073.24391-6.21635.35851-10.15191.35851h-.00178c-1.78184,0-3.59154-.02363-5.36022-.05752-1.76935-.03367-3.4979-.07759-5.11809-.11772q-3.83389-.11772-7.66978-.14247h-.00112c-.63251,0-1.17919.00915-1.7038.02052-.73463.01605-1.39479.03968-1.91114.078q-.44278.03277-.77588.07669a40.36893,40.36893,0,0,0-7.11262,1.61975c-6.792,2.186-12.62735,5.8438-17.55861,8.937-1.9214,1.20172-3.7369,2.33788-5.43557,3.27651a20.01475,20.01475,0,0,1-9.669,2.30131c-6.65557,0-12.92008-2.61545-16.752-6.99512a16.05017,16.05017,0,0,1-3.37148-6.07055,16.94661,16.94661,0,0,1-.48961-7.05421,17.59325,17.59325,0,0,1,1.5736-5.2396A25.5708,25.5708,0,0,1,145.766,317.812c6.99914-6.2683,16.33236-9.61191,17.88813-10.1383l3.89029-1.3152a7.22014,7.22014,0,0,1-.29586-1.16158c-.88311-5.335,4.28715-10.86134,12.32592-14.06026a38.3278,38.3278,0,0,1,7.878-2.18382c.55516-.09141,1.10317-.16454,1.65119-.23388q1.8233-.23074,3.66065-.282,1.835-.05117,3.67047.07736c.17368.01271.33532.04192.50721.0573,5.867.52082,10.68878,2.52159,13.16979,5.552a8.53683,8.53683,0,0,1,.91611,1.36045l4.74866.03657c10.80895.095,19.72905,1.54506,26.51259,4.31769,4.26463,1.74416,7.49477,3.98059,9.50423,6.52849a11.49739,11.49739,0,0,1,1.81305,3.19513,9.59552,9.59552,0,0,1,.44479,1.68775c.03813.22919.02787.447.05864.67465a21.20459,21.20459,0,0,1,.23432,2.69817C254.38182,322.33058,249.94462,328.81492,242.01131,332.35964Z\"/\u003e\u003cpath d=\"M304.33026,102.77611a7.92079,7.92079,0,0,0-.2205-1.03561,5.36251,5.36251,0,0,0-.482-1.09581l-.30322-.52884-.01092-.01895-.0194-.02475-.39708-.50142a6.91464,6.91464,0,0,0-2.04558-1.60347l-.16075-.08406-.0767-.04392-.30321-.12775-.02564-.01092-.05106-.01829-.4274-.14982-.85836-.29229a11.82825,11.82825,0,0,0-1.82286-.41268,16.60171,16.60171,0,0,0-1.91405-.14626,18.4614,18.4614,0,0,0-1.94325.15718,14.01078,14.01078,0,0,0-6.59337,3.19268,20.91808,20.91808,0,0,0-4.15694,4.86905,35.36415,35.36415,0,0,0-4.11681,9.68371,39.98011,39.98011,0,0,0-1.24207,7.15966c-.09119.86573-.084,1.56335-.10211,2.02731-.00357.23232-.00179.40889.00089.53063.00267.12507.00624.19263.00624.19263l1.315-2.38894c.83652-1.50492,2.00546-3.63813,3.452-6.09663a61.08309,61.08309,0,0,1,5.304-7.77323,20.81423,20.81423,0,0,1,3.43368-3.33492,8.94028,8.94028,0,0,1,3.7514-1.70959c.31793-.04014.63207-.07313.94978-.09877l.00245.00022.00134-.00022c.32506.03656.64656,0,.97519.05863.33242.08027.66128.0767,1.00462.18617l.80352.21916.24458.1117c-.01338-.0078-.02831-.01628-.02608-.02163l.01092.00045-.00647-.00647a.13218.13218,0,0,0,.0437.00736l.00379.0058c.01672.00847.03233.0185.02966.02475l-.0136-.00067.00936.01382.00713.00312.02587.00781.0729.03656-.00914-.00089.00936.00468-.03656-.00736a.24963.24963,0,0,1-.04749-.01471.42157.42157,0,0,1,.10947.16454,4.69719,4.69719,0,0,1,.36542,1.60347,19.09019,19.09019,0,0,1-.22251,3.54539c-.04659.33777-.07491.67688-.132,1.00975-.25573,1.53792-.58079,3.03192-.90586,4.42-.65749,2.77621-1.2822,5.13593-1.69488,6.81253-.42807,1.65409-.65325,2.63329-.65637,2.64712a24.59877,24.59877,0,0,0,1.80323-2.081,42.32149,42.32149,0,0,0,4.02563-6.02707,36.664,36.664,0,0,0,2.10021-4.47487c.02809-.07469.04927-.1632.07714-.23856a20.151,20.151,0,0,0,1.311-5.52186A10.68341,10.68341,0,0,0,304.33026,102.77611Z\"/\u003e\u003cpath d=\"M298.36762,103.71318l-.01828-.02207.00446.00134-.00089-.00134-.02988-.01494-.00356-.00022c.01293.014.02051.03054.0408.0408l.01092.00268.00379.00089-.00379-.00357Z\"/\u003e\u003cpolygon class=\"cls-1\" points=\"42.964 180.96 43.541 180.96 42.964 179.919 42.964 180.96\"/\u003e\u003cpath class=\"cls-1\" d=\"M46.416,160.42354a27.17617,27.17617,0,0,0,1.66835,4.18192c.01026.02095.01984.0457.0301.06644.0243.0486.049.08851.07335.13667.42517.84454.89292,1.66634,1.38832,2.47031.09186.14893.18483.30879.27557.45081.544.85234,1.12368,1.68217,1.74461,2.4819.01939.025.04258.05752.06153.08205.23254.31369.45638.5848.657.81912l.02542.0301c.19463.22652.36831.41982.501.57544.28761.32016.45081.4798.45215.48113-.00134-.0078-.06956-.37255-.18728-.97341-.07692-.39239-.17056-.86527-.29408-1.46947-.29942-1.53414-.756-3.71127-1.16893-6.23888-.20445-1.26391-.39084-2.61924-.48225-3.99263-.03523-.61869-.04593-1.255-.02765-1.86811.00179-.0544-.00468-.1117-.00245-.16588a8.18343,8.18343,0,0,1,.24948-1.81974,3.0401,3.0401,0,0,1,.52952-1.13973,1.33328,1.33328,0,0,1,.5955-.34334l.19731-.03657.31771-.06577c.04838-.00758.0408.00557.02118.02163l-.01471.01092-.03568.02586a.20709.20709,0,0,1-.10969.02921l-.002-.00045-.00157.00045a.12584.12584,0,0,1-.051-.01092l.0437.02185a.443.443,0,0,0,.17546.03656l.01761.01026a5.38665,5.38665,0,0,1,1.2608.73507,20.77418,20.77418,0,0,1,3.13426,3.09747c1.01533,1.21286,2.009,2.48392,2.95144,3.75519,1.87748,2.557,3.61629,5.05187,5.14307,7.196q1.8564,2.63328,3.80646,5.19813c.94844,1.25165,1.53971,1.95975,1.541,1.96109l-.008-.07269-.06822-.58435c-.03144-.19977-.064-.45483-.10613-.74578-.04637-.31592-.10434-.67443-.18973-1.07708-.02676-.1418-.06622-.2807-.09409-.42205-.22183-1.09269-.47087-2.17824-.75982-3.25287-.07781-.28873-.17078-.57344-.25394-.8606q-.34146-1.18989-.74-2.36129c-.31971-.94777-.67889-1.88082-1.05122-2.80853-.17279-.43029-.32885-.86661-.51279-1.29223-.57455-1.32968-1.1919-2.64109-1.87391-3.92061a37.74322,37.74322,0,0,0-2.88567-4.58435,21.40346,21.40346,0,0,0-1.90312-2.3022,19.07684,19.07684,0,0,0-2.29039-2.09219A11.25,11.25,0,0,0,56.608,148.834a10.05412,10.05412,0,0,0-1.80525-.74243c-.18638-.045-.38147-.07536-.57387-.11282-.18015-.03411-.35873-.07558-.54022-.10278l-.28493-.03656-.37991-.00714a9.79427,9.79427,0,0,0-1.44652.1204l-.31414.08784-.3177.08383-.41648.12418-.12061.05128-.24458.10947a7.05077,7.05077,0,0,0-3.2803,2.83462,7.75366,7.75366,0,0,0-.78412,1.7825,8.28838,8.28838,0,0,0-.34825,1.78273A15.02674,15.02674,0,0,0,46.416,160.42354Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M67.49276,422.84793c9.85538,0,16.79232-5.36245,21.6616-12.32458-5.57426-12.9203-14.74294-34.69114-23.43674-57.60551a43.14336,43.14336,0,0,0-8.01447,9.58494c-7.324,11.34961-13.35484,37.76321-5.75685,51.7062C55.11334,420.02424,60.20178,422.84793,67.49276,422.84793Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M415.33908,357.39985c-5.77157-14.94-18.056-25.55166-29.86936-25.79647l-.42-.03656a39.55353,39.55353,0,0,0-5.33681-.34335c-6.43262,0-14.33,1.37361-15.41871,7.91213-.75982,4.53686,1.22735,6.86,5.42443,11.27626,4.79637,5.041,11.36053,11.95225,13.333,26.38105,2.25026,16.52188,6.283,24.90131,11.985,24.90131,2.66651,0,7.5213-1.59611,15.54646-9.19767C420.47144,383.13055,419.52166,368.22686,415.33908,357.39985Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M102.51633,287.30166a13.25246,13.25246,0,0,0,13.25072,13.25228l.00179.00022a13.25251,13.25251,0,0,0,0-26.505l-.00179.00022A13.25262,13.25262,0,0,0,102.51633,287.30166Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M244.12267,243.0035a13.25262,13.25262,0,1,0,13.25251,13.2525A13.2526,13.2526,0,0,0,244.12267,243.0035Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M319.481,122.32078c-1.68753,10.04533-4.93126,21.08058-7.07918,24.09044l-2.01638,2.82012c9.13212-4.44567,17.27791-8.6646,24.19277-12.5404,24.04317-13.4788,27.03118-19.38191,27.37809-20.87234.223-.97519-.01449-1.27841-.11682-1.40259-.26286-.32886-1.95061-1.9689-9.54481-1.9689-8.2994,0-19.91544,1.89956-32.03913,4.5295Q319.92711,119.65705,319.481,122.32078Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M310.10428,149.37l-3.46669-.28493q-7.51862-.52874-15.06065-.51123c-8.9678,0-20.79208.53687-30.49407,2.83462a11.26166,11.26166,0,0,1-1.47929,12.09092c-2.37444,2.86382-6.39248,7.63433-11.20691,13.10625q13.15206-5.3358,26.17615-10.9804Q292.51156,157.88122,310.10428,149.37Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M79.82113,139.2627v-.00379a133.923,133.923,0,0,0,34.74956,4.20822c20.43781,0,63.82633-3.97078,124.81425-30.56341l1.37361-.59907a36.3938,36.3938,0,0,1,.84008-10.04534,31.4539,31.4539,0,0,1,7.32019-14.81607,49.58223,49.58223,0,0,0-1.51942-4.96046c-7.03905-3.75162-65.05724-25.36171-95.31387-25.36171a39.992,39.992,0,0,0-7.84636.672c-26.81558,5.47214-67.563,52.08968-69.02423,58.70133-.43833,2.85668-.30679,11.83519.01471,21.52626Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M173.9295,202.508a42.55732,42.55732,0,0,0,5.56333-1.15066,11.27266,11.27266,0,0,1,19.00957-8.931,11.80569,11.80569,0,0,0,2.94409-.97185c5.5524-2.64087,25.59559-24.03559,40.82434-42.35825a11.19373,11.19373,0,0,1,1.80814-1.73145c-34.79348,15.035-83.4129,31.46548-129.70537,31.46548a165.05073,165.05073,0,0,1-21.0623-1.27841l1.01533,2.988L88.537,182.75711c-.04013.01829-1.0374.40176-2.70307,1.09581q11.17759,2.60822,30.17971,10.27186c23.15916,9.35129,32.01371,9.70935,34.22718,9.57781a11.26885,11.26885,0,0,1,10.21344-.146C166.45948,203.17285,171.13145,202.8003,173.9295,202.508Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M79.29875,205.45967a22.87731,22.87731,0,0,0-2.62638-.4274,11.17895,11.17895,0,0,1-11.91189-10.95141c-3.04285,1.72431-6.0857,3.59087-8.93481,5.56333L50.75908,203.151l-3.72576-4.90584a130.9118,130.9118,0,0,1-11.09009-17.67967C26.96807,184.8027,19.95466,189.431,18.24149,193.818a1.65218,1.65218,0,0,0,.146,1.77158C19.84876,197.73371,28.54256,204.29074,79.29875,205.45967Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M241.95669,118.8066c-24.36467,10.62613-77.762,31.10051-127.386,31.10051a140.18855,140.18855,0,0,1-36.42973-4.431q1.80825,2.73965,3.57972,5.84447A151.26672,151.26672,0,0,1,90.86373,170.699a152.44449,152.44449,0,0,0,23.50987,1.69132c28.50311,0,73.05321-6.524,134.18-34.03723.9607-3.01364,2.23933-6.78689,3.821-10.98419-.12418.00736-.2448.02921-.369.02921a9.20479,9.20479,0,0,1-1.92876-.208C246.278,126.35354,243.47254,123.25941,241.95669,118.8066Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M43.54122,180.9599a128.80816,128.80816,0,0,0,8.62067,13.3914c14.7648-10.22437,34.0738-17.60676,34.0738-17.60676s-.497-1.45744-1.42467-3.83545q-1.26714-3.25164-2.68858-6.44-1.03172-2.31558-2.13321-4.59905-.45482-.93674-.92413-1.86656l-.24837-.49317q-.56987-1.11767-1.1763-2.25383l-.13154-.24836q-2.27546-4.2623-4.946-8.29561c-5.92853-8.88732-13.44246-16.44875-21.8549-16.44518a15.72243,15.72243,0,0,0-8.20442,2.44757c-15.455,9.35128-7.47737,30.74957.4604,45.204Zm2.20991-26.15074a8.28838,8.28838,0,0,1,.34825-1.78273,7.75366,7.75366,0,0,1,.78412-1.7825,7.05077,7.05077,0,0,1,3.2803-2.83462l.24458-.10947.12061-.05128.41648-.12418.3177-.084.31414-.08762a9.79746,9.79746,0,0,1,1.44652-.12419l.37991.00736.28493.03656c.18059.02832.359.07113.54022.10635.1924.03746.38749.06778.57387.11282a10.05412,10.05412,0,0,1,1.80525.74243,11.25,11.25,0,0,1,1.55554.96337,19.07684,19.07684,0,0,1,2.29039,2.09219,25.884,25.884,0,0,1,1.90668,2.3022,37.39156,37.39156,0,0,1,2.88211,4.58435c.682,1.27952,1.29936,2.59093,1.87391,3.92061.18394.42562.34.86194.51279,1.29223.37233.92771.73151,1.86076,1.05122,2.80853q.396,1.17218.74,2.36129c.08316.28716.17613.57187.25394.8606.28895,1.07463.538,2.16018.75982,3.25287.02854.14046.07023.2778.09766.41848.0836.40511.14046.76473.18616,1.08065.04214.291.07469.546.10613.74578l.06822.58435.00847.07313-.00044-.00044c-.00134-.00134-.59261-.70944-1.541-1.96109q-1.95-2.5644-3.80646-5.19813c-1.52678-2.14414-3.26559-4.639-5.14307-7.196-.94242-1.27127-1.93611-2.54233-2.95144-3.75519a20.77418,20.77418,0,0,0-3.13426-3.09747,5.45964,5.45964,0,0,0-1.2608-.73507l-.01761-.01026a.443.443,0,0,1-.17546-.03656l-.0437-.02185.05262.01047.002.00045a.20709.20709,0,0,0,.10969-.02921l.03568-.02586.01471-.01092c.01962-.01606.0272-.02921-.02118-.02163l-.31771.06577-.19731.03657a1.33328,1.33328,0,0,0-.5955.34334,3.0401,3.0401,0,0,0-.52952,1.13973,8.18343,8.18343,0,0,0-.24948,1.81974c-.00223.05418.00424.11148.00245.16588-.01828.61312-.00758,1.24942.02765,1.86811.09141,1.37339.2778,2.72872.48225,3.99263.4129,2.52761.86951,4.70117,1.16893,6.23888.12352.6042.21716,1.07708.29408,1.46947.11772.60086.18594.96561.18728.97341l.00089.00469s-.16454-.16454-.453-.48225c-.13243-.159-.30634-.35293-.501-.579l-.02542-.0301c-.20133-.23454-.42628-.50521-.66083-.81912-.02051-.02631-.03723-.05552-.05774-.08205-.62093-.79973-1.2006-1.62956-1.74461-2.4819-.09074-.142-.18371-.30188-.27557-.45081-.4954-.804-.96315-1.62577-1.38832-2.47031-.02363-.04682-.05351-.08985-.07692-.13667-.0107-.02141-.01583-.045-.02653-.06644a27.17617,27.17617,0,0,1-1.66835-4.18192A14.95375,14.95375,0,0,1,45.75113,154.80916Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M257.82086,82.97216v-.00357a8.97445,8.97445,0,0,1,1.92876.2118c4.72681,1.04119,7.91949,5.589,8.99322,11.89741,9.00794-12.65344,18.83412-19.04971,29.33249-19.04971a21.64209,21.64209,0,0,1,11.57212,3.05756c5.53791-6.73962,9.06278-11.38595,9.06278-11.38595-4.1643.75983-12.87259,1.89577-12.87259,1.89577,32.94142-12.11657,30.2894-45.058,30.2894-45.058,0,5.68037-17.0369,19.309-17.0369,19.309.75626-4.92033-1.89219-11.36031-1.89219-11.36031.75625,6.44-19.68891,23.097-19.68891,23.097,1.51228-3.02814.37634-8.32838.37634-8.32838-1.13238,6.06007-10.22058,8.32838-10.22058,8.32838,5.68016-6.81253,16.28064-42.78208,8.32838-45.05419S277.06409,34.002,277.06409,34.002c-.37991-6.05627-3.788-6.05627-3.788-6.05627,1.51585,18.92909-13.62885,34.07379-13.62885,34.07379-1.13594-3.78439-7.196-5.67659-7.196-5.67659,1.94325,4.21179-.27044,23.39282-.94978,28.83553A10.97588,10.97588,0,0,1,257.82086,82.97216Z\"/\u003e\u003cpath d=\"M249.75177,119.82951a4.39961,4.39961,0,0,0,.5041.47489c.0622.04749.128.08026.19374.12418a2.70263,2.70263,0,0,0,1.00819.4711,2.99818,2.99818,0,0,0,1.05925.01828,6.34349,6.34349,0,0,0,3.17439-1.78607q1.53-3.58073,3.21809-7.09033,1.58887-3.28743,3.21453-6.27543c1.61462-8.56248-.55894-15.59418-3.75875-16.29536a2.47615,2.47615,0,0,0-.548-.05864c-3.28386,0-8.05816,5.71672-9.92851,14.22792-1.35889,6.1769-.73039,11.66732.86952,14.73559a6.8487,6.8487,0,0,0,.96783,1.42466v.00357Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M298.34934,103.69111l.01828.02207.00357.00357a.11108.11108,0,0,0,.05128.01828l.0272.00268.00914.00089-.0729-.03656-.02587-.00781-.00624-.00178Z\"/\u003e\u003cpolygon class=\"cls-4\" points=\"298.075 82.468 298.077 82.468 298.079 82.468 298.075 82.468\"/\u003e\u003cpath class=\"cls-4\" d=\"M298.07734,82.46829c-18.75318.00133-32.549,28.22575-39.75952,47.40277q-2.85334,7.59385-5.12879,15.38593a11.13807,11.13807,0,0,1,2.64466.90229c10.92577-3.26937,25.06585-4.02919,35.74325-4.02919,9.03715,0,15.5866.53709,15.5866.53709C310.00194,138.69283,326.47165,82.47141,298.07734,82.46829Zm5.16714,28.63331c-.02787.07536-.04905.16387-.07714.23856a36.664,36.664,0,0,1-2.10021,4.47487,42.32149,42.32149,0,0,1-4.02563,6.02707,24.59877,24.59877,0,0,1-1.80323,2.081l-.00112.00111s.2263-.98255.65749-2.64823c.41268-1.6766,1.03739-4.03632,1.69488-6.81253.32507-1.3881.65013-2.8821.90586-4.42.05707-.33287.08539-.672.132-1.00975a18.89375,18.89375,0,0,0,.21872-3.54539,4.62684,4.62684,0,0,0-.36163-1.60347.42157.42157,0,0,0-.10947-.16454l-.00379-.00089-.01092-.00268c-.02051-.01026-.02876-.027-.04459-.041l.00379.00022.00356.00022a.04473.04473,0,0,0,.02052.00112l.0136.00067c.00267-.00625-.01294-.01628-.02966-.02475l-.00579-.00491a.04653.04653,0,0,0-.03523-.00178l-.01092-.00045c-.00223.00535.0127.01383.02608.02163l.00067.00045-.24525-.11215-.80352-.21916c-.34334-.10947-.6722-.1059-1.00462-.18617-.32863-.05863-.65013-.02207-.97519-.05863l-.00134.00022q-.47523.0408-.94844.09855a8.90084,8.90084,0,0,0-3.75162,1.70959,20.82677,20.82677,0,0,0-3.43725,3.33492,61.08309,61.08309,0,0,0-5.304,7.77323c-1.44651,2.4585-2.61545,4.59171-3.452,6.09663l-1.315,2.38894s-.00357-.06756-.00624-.19263c-.00268-.1224-.00468-.29965-.00112-.53063.01829-.464.01115-1.16158.09877-2.03087a40.78716,40.78716,0,0,1,1.24185-7.1561,35.3971,35.3971,0,0,1,4.12038-9.68371,20.93213,20.93213,0,0,1,4.15694-4.86905,14.01285,14.01285,0,0,1,6.59359-3.19268,18.4614,18.4614,0,0,1,1.94325-.15718,16.60171,16.60171,0,0,1,1.91405.14626,12.25519,12.25519,0,0,1,1.82286.40911l.85836.29229.4274.15339.05106.01829.02564.01092.30321.12775.0767.04392.16075.08406a6.91464,6.91464,0,0,1,2.04558,1.60347l.39708.50142.0194.02452.01092.01918.30322.52884a5.36251,5.36251,0,0,1,.482,1.09581,7.92079,7.92079,0,0,1,.2205,1.03561,10.76661,10.76661,0,0,1,.229,2.79984A20.254,20.254,0,0,1,303.24448,111.1016Z\"/\u003e\u003cpath d=\"M197.87769,208.22473a24.72125,24.72125,0,0,0,10.0197-2.42907c7.47-3.36056,25.70885-21.67229,46.46436-46.65053a4.454,4.454,0,0,0-6.84352-5.70245l-.00936.01137c-9.03336,10.87071-34.39886,40.00589-43.14015,44.15927l-.12418.05841a18.75549,18.75549,0,0,1-4.68668,1.48664l-3.324.52238-2.43286-2.31959a4.5007,4.5007,0,0,0-3.07563-1.22,4.45515,4.45515,0,0,0-3.74782,6.84909C187.3209,203.52356,190.52071,208.22473,197.87769,208.22473Z\"/\u003e\u003cpath d=\"M153.4335,209.72252l-1.30784.69405-1.47929.08762q-.53107.0301-1.063.02921c-4.16052,0-14.38132-1.31141-36.12674-10.08926-23.97-9.68371-33.46737-11.13022-36.996-11.13022a7.06957,7.06957,0,0,0-1.24563.08762,4.44992,4.44992,0,0,0-3.58352,5.17628,4.49338,4.49338,0,0,0,4.6247,3.65285l.48938-.02943.49317.04035c2.64466.21917,11.14115,1.68017,32.88658,10.46159,17.58112,7.10126,30.89226,10.703,39.57135,10.703,4.54421,0,7.6564-.979,9.2563-2.90039a4.45888,4.45888,0,0,0-3.42633-7.30213A4.51522,4.51522,0,0,0,153.4335,209.72252Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M247.72447,312.30531c-.62828-3.777-9.66543-10.18045-32.00636-10.37041,0,0-.00424.05062-.0165.14626a13.06625,13.06625,0,0,1-.4245,1.93746c-.124.42539-.28181.90273-.4818,1.41953a20.03462,20.03462,0,0,1-6.76549,8.78076c-3.22456,2.42482-7.7924,4.51589-14.258,5.469-1.67281.24659-3.22433.42228-4.70184.55582-.17167.01472-.34245.03679-.51412.05039q-2.67978.22339-4.96092.223c-11.0096,0-15.34179-3.62364-17.8879-6.76883,0,0-.07759.02631-.22318.078-.13644.0486-.33309.11972-.58168.21292-3.73066,1.39924-19.21313,7.78058-20.54237,17.765a11.775,11.775,0,0,0-.10568,1.54417,10.01213,10.01213,0,0,0,.38325,2.79627c1.62421,5.636,8.12371,8.51767,13.97955,8.51767a13.77564,13.77564,0,0,0,6.56773-1.49757c4.49762-2.48637,10.39916-6.82056,17.70486-10.18335a50.89,50.89,0,0,1,14.6667-4.39528,43.34184,43.34184,0,0,1,5.2309-.23009c4.92412,0,11.63789.31771,18.14363.31771,7.39711,0,14.52735-.41268,18.46513-2.16977a19.35589,19.35589,0,0,0,2.93606-1.61128,14.54158,14.54158,0,0,0,2.19942-1.80457,12.03651,12.03651,0,0,0,1.56045-1.92452,11.16842,11.16842,0,0,0,1.356-2.95145,12.40964,12.40964,0,0,0,.48225-3.67135,14.52864,14.52864,0,0,0-.10747-1.558C247.79336,312.74475,247.76014,312.51823,247.72447,312.30531Z\"/\u003e\u003cpath class=\"cls-7\" d=\"M215.70161,302.08116a13.06625,13.06625,0,0,1-.4245,1.93746\"/\u003e\u003cpath class=\"cls-1\" d=\"M171.80855,311.2387c4.52638,2.88746,11.83877,4.1244,19.81176,2.80184q.76986-.13176,1.53414-.29229c10.765-2.2099,18.68072-8.42715,18.76834-14.648a7.32238,7.32238,0,0,0-.89493-3.61629,8.53683,8.53683,0,0,0-.91611-1.36045c-2.481-3.03037-7.3028-5.03114-13.16979-5.552-.17189-.01516-.33353-.04436-.50721-.05707q-1.83335-.12876-3.67047-.07759-1.835.05149-3.66065.282c-.548.06934-1.096.146-1.64762.23388a38.36808,38.36808,0,0,0-7.88158,2.18382c-8.03877,3.19892-13.209,8.72523-12.32592,14.06026a7.22014,7.22014,0,0,0,.29586,1.16158l.00044.00112A9.80461,9.80461,0,0,0,171.80855,311.2387Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"27.70 -2.30 447.60 509.60\"\u003e\u003cstyle\u003esvg {enable-background:new 0 0 504 504}\u003c/style\u003e\u003cstyle\u003e.st0{fill:#fff}\u003c/style\u003e\u003cpath d=\"M401.3 371.7c-1.7-12.3-6.9-17.7-11.5-22.6-4.3-4.5-8.3-8.8-7-16.6 1.2-7.2 7-11.7 16.4-12.9-5.7-38.6-14.1-87.4-24.9-129-5.4-20.8-13.9-35.2-25.3-44.8 2.1-1.1 4.1-2.1 6.1-3.2 2.7-1.4 5.3-2.8 7.7-4.2 25.2-14.1 29.3-20.9 30.2-24.8.8-3.3-.3-5.5-1.3-6.8-2.4-3-7-4.4-14.4-4.4-8.3 0-19.5 1.7-31.2 4.2-.1 2.1-.3 4.3-.6 6.7 12-2.6 23.5-4.5 31.7-4.5 7.5 0 9.2 1.6 9.5 1.9.1.1.3.4.1 1.4-.3 1.5-3.3 7.3-27.1 20.7-6.8 3.8-14.9 8-24 12.4l-.1.1h-.2c-10.5 5.1-22.4 10.5-35.2 16.1-7.6 3.3-15.2 6.5-22.6 9.5 3.6-4.1 6.7-7.8 9-10.6 4.5-5.4 3.8-13.5-1.7-18-.4-.3-.7-.6-1.1-.8 10.5-2.7 23.4-3.4 33.2-3.4 9 0 15.4.5 15.4.5 2.8-3.9 19.1-59.6-9-59.6-24.2 0-40 47.3-44 60.7-4.5-1-9.4.5-12.5 4.3-14.8 17.8-34.4 38.7-39.9 41.5-.8.3-1.4.6-1.8.7-4.1-3.4-10.2-4-15-.9-4.2 2.6-6.3 7.3-5.9 11.9-1.6.4-3 .6-3.9.8-2.1.2-5.3.5-9.4.8l-.7-.7c-4-3.3-9.4-3.8-13.8-1.6-2.4 0-11.1-.6-32.9-9.4-21.4-8.6-32-11.1-37.4-11.6 4.4-1.9 7.3-3.1 7.3-3.1s-15-44.1-35.2-44.1c-2.6 0-5.3.7-8.1 2.4-24.2 14.6 9.6 59.1 9.6 59.1 3.9-2.7 8.1-5.2 12.3-7.4-1.2 2.4-1.7 5.2-1.2 8 1 5.4 5.2 9.3 10.2 10.3-45.4-1.5-53.4-7.6-54.8-9.6-.3-.5-.5-.9-.1-1.8 1.7-4.3 8.6-8.9 17.5-13.1-1-1.8-1.9-3.8-2.8-5.8-9.8 4.7-18.3 10.3-20.7 16.6-1.1 2.7-.8 5.3.8 7.7 1.5 2.2 5.3 7.7 33.2 10.7 2.1.2 4.3.4 6.7.6-11.8 24.4-6.7 51.4-2.3 73.7 4.7 24.2 19.6 63.7 31.8 93.4 5.7 13.9 10.7 25.7 13.8 32.8 36.1 3.2 82.4 5.1 132.9 5.1 59.7 0 113.6-2.7 151.6-7-2.4-9.2-6.2-25.2-7.2-31.2 0-.3-.1-.8-.2-1.1zm-98.6-251.5c0-.5 0-1.2.1-2 .1-1.7.5-4.2 1.2-7.1.8-2.9 2-6.2 4.1-9.6 1.1-1.7 2.4-3.4 4.1-4.8.6-.6 1.4-1.1 2.1-1.5.5-.3 1.1-.6 1.6-.8.9-.4 1.8-.6 2.7-.8.6-.1 1.3-.1 1.9-.2.6 0 1.3 0 1.9.1.6.1 1.2.2 1.8.4l.3.1.6.2.3.1.1.1h.1l.3.1h.2c.1 0 1.6 1 2 1.6l.4.5.3.5c.2.3.3.6.4.9 0 .1.1.1.1.2s0 .1.1.2c.4 1.3.4 2.5.4 3.6-.1 1.1-.3 2.1-.5 3.1-.2.9-.5 1.8-.9 2.6-.6 1.7-1.4 3.1-2.1 4.4-1.4 2.6-2.9 4.6-4 6-1.1 1.4-1.8 2.1-1.8 2.1s.2-1 .6-2.6c.4-1.7 1-4 1.7-6.7.3-1.4.6-2.9.9-4.4.3-1.5.4-3.1.4-4.5 0-.2 0-.4-.1-.6-.1-.4-.2-.8-.3-1 0-.1-.1-.1-.1-.2l-.3-.1h-.2l-.6-.2c-.3-.1-.6-.1-.9-.2h-.1c-.4-.1-.7 0-1-.1-.3 0-.6.1-.9.1-.9.2-1.9.5-2.8 1.1l-.9.6c-.3.2-.6.5-.9.7-.6.5-1.2 1.1-1.7 1.7-.3.3-.5.6-.8.9-.5.6-1 1.3-1.5 1.9-1.4 2-2.7 4-3.8 5.8-1.1 1.8-2 3.5-2.7 4.8-.2.4-.5.9-.7 1.2-.8 1.5-1.3 2.4-1.3 2.4s.2-.2.2-.6zm-87.5 72.9c.2-.1.3-.2.5-.3.5-.2 1-.3 1.5-.3.4 0 .9.1 1.3.2s.8.4 1.1.6l3.6 3 4.5-1.3c1-.3 2-.7 3.1-1.1l.2-.1.2-.1c1.4-.7 3.2-2 5.2-3.7 11.1-9.3 30-31.1 37.5-40.1.7-.9 1.8-1.4 2.9-1.4.6 0 1.5.2 2.4.9 1.6 1.3 1.8 3.7.5 5.3-5.1 6.2-10.1 11.9-14.8 17.1-6.4 7.2-12.3 13.3-17.4 18.1-.5.4-.9.9-1.3 1.3-.9.8-1.7 1.6-2.6 2.3l-2.4 2.1c-1.9 1.6-3.6 2.9-5 3.8-.9.6-1.6 1-2.3 1.3-.4.2-.8.4-1.3.5-1.3.5-2.5.9-3.7 1.2-1.6.4-3.1.6-4.6.6-.9 0-1.8-.1-2.7-.2-.9-.1-1.7-.4-2.5-.7-.4-.2-.8-.3-1.2-.5-.4-.2-.7-.4-1-.6-1.9-1.2-2.8-2.5-3-2.9-.1-.2-.3-.4-.3-.7-.2-.5-.3-1-.2-1.4 0-1 .7-2.2 1.8-2.9zm55.4 135.3c-4.1 1.8-10.1 2.6-20.1 2.6h-.5c.2 2 .4 4.3.6 7.1 0 .5.1 1 .1 1.5.1 5.7-2.1 9.1-3.9 10.9-2.5 2.5-5.9 3.9-9.8 3.9-1.8 0-3.7-.3-5.1-.8-1.2-.4-2.2-1.1-3.1-1.9-1.9 3.6-4.9 5-6.7 5.5-1.5.4-3 .7-4.4.7-7.3 0-12.8-5.4-15.3-14.9l-2.1 1.2c-2.6 1.4-5.8 2.2-9.2 2.2-6.4 0-12.3-2.5-16-6.7-3-3.5-4.3-7.8-3.7-12.5 1.9-14.2 22.2-21.4 24.5-22.2l3.7-1.3c-.1-.4-.2-.7-.3-1.1 0-.2-.1-.5-.1-.7v-.9c0-.2 0-.3.1-.5v-.2c0-.2.1-.5.2-.7.1-.2.1-.5.2-.7 0-.1.1-.1.1-.2.1-.2.1-.3.2-.5 0-.1.1-.2.1-.2.1-.2.2-.3.3-.5 0-.1.1-.1.1-.2.1-.2.3-.5.4-.7.2-.2.3-.4.5-.7 0-.1.1-.1.1-.2.1-.2.3-.3.4-.5l.2-.2.5-.5.1-.1c.4-.4.9-.9 1.4-1.3.1-.1.1-.1.2-.1.2-.2.4-.3.6-.5l.2-.2c.2-.2.5-.3.7-.5.1 0 .1-.1.2-.1l.9-.6c.4-.2.7-.4 1.1-.6.1 0 .1-.1.2-.1.8-.4 1.6-.8 2.4-1.1.1 0 .2-.1.3-.1.4-.2.9-.3 1.3-.5s.9-.3 1.3-.4c.1 0 .2-.1.3-.1.5-.1.9-.3 1.4-.4.5-.1.9-.2 1.4-.3.1 0 .2-.1.4-.1.5-.1 1-.2 1.4-.3.5-.1 1.1-.2 1.6-.2.6-.1 1.1-.1 1.7-.2h.5c.4 0 .7 0 1.1-.1h3.9c.3 0 .6.1.9.1.4 0 .8.1 1.2.2.2 0 .5.1.7.1.3.1.6.1.8.2.2 0 .3.1.5.1.3.1.6.1.9.2.1 0 .3.1.4.1l.9.3c.1 0 .2.1.3.1 1.8.6 3.4 1.4 4.6 2.4.3.2.5.4.7.6l.8.8.3.3c.1.1.2.2.2.3.1.2.2.3.3.5.1.1.1.2.2.3h4.5c10.3.1 18.8 1.5 25.3 4.1 6.5 2.7 10.5 6.5 11.2 10.9 1.6 8.8-2.7 16.4-11.3 20.2zM96.9 170.1c-1-1.2-2.3-3-3.8-5.1-1.5-2.1-3.2-4.6-5.1-7.1-.9-1.3-1.9-2.5-2.9-3.7-.4-.4-.8-.9-1.2-1.3-.4-.4-.8-.8-1.2-1.1-.3-.2-.5-.4-.8-.6-.2-.2-.5-.3-.7-.5l-.6-.3h-.2.2l-.3.1h-.2c-.3.1-.4.2-.6.3-.2.2-.4.6-.5 1.1-.3 1-.3 2.5-.2 3.8.1 1.4.3 2.7.5 4 .4 2.5.9 4.7 1.2 6.2.2.8.3 1.4.4 1.8 0 .1 0 .2.1.3 0 .2.1.4.1.4s-.2-.2-.4-.5c-.3-.3-.7-.8-1.2-1.4-.7-.9-1.6-2.2-2.6-3.8-.3-.5-.6-1.1-.9-1.7-.2-.4-.4-.8-.6-1.3-.4-.9-.8-1.9-1.1-2.9-.4-1.6-.9-3.4-.7-5.6.1-.8.3-1.7.6-2.6.1-.3.3-.6.5-.9.7-1.2 2-2.3 3.3-2.8l.2-.1.1-.1.4-.1.3-.1.3-.1c.1 0 .5-.1.7-.1h1.5c.4.1.7.1 1.1.2 1 .3 1.9.7 2.6 1.2.2.2.5.3.7.5.4.3.7.6 1 .9.5.4.9.8 1.3 1.2.7.7 1.3 1.5 1.8 2.2 1.1 1.5 2 3 2.9 4.5.8 1.5 1.5 3 2.1 4.4.4.9.7 1.8 1 2.6.2.5.4 1 .5 1.5.2.6.4 1.3.6 1.8.5 1.8.8 3.3 1.1 4.4.1.6.2 1 .2 1.4v.4c0 .4.1.6.1.6s-.6-.7-1.6-2zm2.9 19c-.2-1.3.3-2.3.6-2.8s1.1-1.3 2.4-1.6c.3-.1.5-.1.8-.1h.4c.3 0 .8 0 1.3.1.4 0 .9.1 1.4.2.9.1 2 .3 3.4.6.8.2 1.7.4 2.7.6.8.2 1.6.4 2.5.7.5.2 1.1.3 1.7.5l2.1.6c.6.2 1.3.4 1.9.6.3.1.6.2 1 .3.7.2 1.4.5 2.1.7 1.4.5 3 1 4.6 1.6l2.4.9 1.5.6c2.4.9 5 1.9 7.8 3 .8.3 1.5.6 2.3.9 1 .4 1.9.7 2.8 1.1 1.5.6 2.9 1.1 4.3 1.6.8.3 1.5.5 2.3.8 5.6 2 10.1 3.3 13.8 4.1.3.1.6.1.9.2 1.7.4 3.2.7 4.6.9.1 0 .3 0 .4.1 1.9.3 3.5.4 4.7.4h2.3l1.8-.9c.5-.3 1.1-.4 1.7-.4.3 0 .7 0 1.1.2.4.1.9.3 1.3.7.3.2.5.4.6.7.2.3.4.6.5.9 0 .1 0 .1.1.2.1.3.1.5.2.7v.5c0 .2 0 .4-.1.7-.1.2-.1.5-.3.8-.1.3-.3.5-.5.8l-.3.3c-.1.1-.2.3-.4.4-.1.1-.2.1-.3.2-.3.2-.7.5-1.2.7-.6.3-1.5.6-2.5.8-.5.1-1.1.2-1.8.2-.7.1-1.4.1-2.2.1-2.1 0-4.5-.2-7.2-.7-2.7-.4-5.7-1.1-8.9-2s-6.8-2-10.6-3.3c-3.8-1.3-7.9-2.9-12.3-4.6-5.3-2.1-9.8-3.8-13.6-5.2-.5-.2-.9-.3-1.4-.5-10.5-3.6-15.5-4.5-17.5-4.7h-.1l-.6-.1h-.9c-1.7 0-3.2-1.3-3.6-3.1zm-3.5 78.4c0-27.8 22.6-50.3 50.3-50.3s50.3 22.6 50.3 50.3c0 27.8-22.6 50.3-50.3 50.3s-50.3-22.5-50.3-50.3zm179.4 20.4c-27.8 0-50.3-22.6-50.3-50.3 0-27.8 22.6-50.3 50.3-50.3s50.3 22.6 50.3 50.3c0 27.7-22.6 50.3-50.3 50.3zM95.1 416.4c9.2 0 15.9-4.8 20.6-11.1.3-.4.5-.7.8-1.1-3.2-7.5-7.7-18.1-12.6-30.1-3.4-8.4-7-17.6-10.6-26.9-2.3 2-5 5-7.9 9.5-3.2 4.9-6.1 12.8-7.8 21.2-1.5 7.6-1.9 15.6-.6 22.4.6 2.8 1.4 5.4 2.7 7.7 3.1 5.6 8.2 8.4 15.4 8.4zm-46.3-27.3c0 3.5 7.6 6.8 21.1 9.7-1-7-.4-14.1.5-19.6-13.8 3-21.6 6.3-21.6 9.9zm398.7-9.1c-.2.6-.4 1.1-.7 1.7-1.7 3.9-4 7.3-7.1 10.2-6.1 5.8-11.5 9.2-16.2 10.5 26.4-3.7 42.1-8.3 42.1-13.3.1-3.2-6.4-6.3-18.1-9.1z\" class=\"st0\"/\u003e\u003cpath d=\"M440.4 378.5c3.7-8.6 2.4-18.9-.7-26.9-5.7-14.8-17.9-25.3-29.6-25.6h-.4s-2.3-.3-5.3-.3c-6.4 0-14.2 1.4-15.3 7.8-.7 4.5 1.2 6.8 5.4 11.2 4.8 5 11.3 11.8 13.2 26.1.1 1 .3 2 .4 3 2.3 14.4 6.1 21.7 11.4 21.7 2.6 0 7.4-1.6 15.4-9.1 2.5-2.4 4.3-5 5.5-7.9zM102.9 137.8c-.4-10.9-.6-21.6-.1-24.8 1.4-6.5 41.8-52.7 68.4-58.1 2.2-.4 4.8-.7 7.8-.7 30 0 87.4 21.4 94.4 25.1.4.9.9 2.6 1.5 4.9-3.3 3.4-5.9 8.6-7.3 14.7-1.4 6.2-1.1 12 .4 16.4-30.3 13.2-105.7 41.7-162.3 26.4 1.2 1.8 2.4 3.7 3.5 5.8 4.3 7.5 7.4 14.8 9.1 19.2 23.4 3.7 75.1 4.5 156.2-32 1.5-4.8 3.9-11.7 7.1-19.1-1.5 1.4-3 2-4.2 1.8-3.3-.7-5.5-8.2-3.5-17.1 1.9-8.4 6.6-14.1 9.8-14.1.2 0 .4 0 .5.1 3.2.7 5.3 7.7 3.7 16.1 10.6-19.6 22.6-29.5 35.6-29.5 4.4 0 8.2 1 11.5 3 5.5-6.7 9-11.3 9-11.3-4.1.7-12.8 1.9-12.8 1.9 32.6-12 30-44.6 30-44.6 0 5.6-16.9 19.1-16.9 19.1.8-4.9-1.9-11.3-1.9-11.3.7 6.4-19.5 22.9-19.5 22.9 1.5-3 .4-8.3.4-8.3-1.1 6-10.1 8.3-10.1 8.3 5.6-6.8 16.1-42.4 8.3-44.6-7.9-2.3-18.8 23.3-18.8 23.3-.4-6-3.8-6-3.8-6C300.4 44 285.4 59 285.4 59c-1.1-3.8-7.1-5.6-7.1-5.6 1.4 3 .6 13.8-.2 21.6l-.2-.2c-3.2-3.2-67.4-27-99-27-3.4 0-6.5.3-9 .8-16.7 3.4-36.6 20.6-46.9 30.6C110.6 91 97.3 106.5 96.4 112c-.4 2.9-.4 10.2-.2 18.3 2.3 2 4.5 4.6 6.7 7.5zm41.8 312.1c-7.2 1.6-28.2 13.1-46.4 16.6-18.2 3.5-34 5.3-39.5 7.4-5.5 2-9.8 6.1 1 10.2s63.4 5.5 68.1 0c4.7-5.5-3.2-7.9-14.7-7.8-8.2.1-7.2-2.7-7.2-3.1 0 0 .5-3.6 13.1-5.3 12.6-1.7 68.1-7 67.1-12.9s-34.3-6.7-41.5-5.1z\" class=\"st0\"/\u003e\u003cellipse cx=\"108.7\" cy=\"493.7\" class=\"st0\" rx=\"10.9\" ry=\"3.2\" transform=\"rotate(-12.285 108.609 493.667)\"/\u003e\u003cellipse cx=\"83.5\" cy=\"492.3\" class=\"st0\" rx=\"11.5\" ry=\"3.1\" transform=\"rotate(-4.542 83.463 492.308) scale(1.00004)\"/\u003e\u003cellipse cx=\"63.3\" cy=\"489.8\" class=\"st0\" rx=\"7.7\" ry=\"2.4\" transform=\"rotate(-7.765 63.331 489.89)\"/\u003e\u003cellipse cx=\"48.4\" cy=\"487.5\" class=\"st0\" rx=\"7.4\" ry=\"1.9\" transform=\"rotate(-8.27 48.382 487.623)\"/\u003e\u003cellipse cx=\"45.1\" cy=\"483.3\" class=\"st0\" rx=\"7.4\" ry=\"1.9\" transform=\"rotate(-8.27 45.007 483.428)\"/\u003e\u003cellipse cx=\"44.2\" cy=\"478.5\" class=\"st0\" rx=\"6.4\" ry=\"1.7\" transform=\"rotate(-8.27 44.156 478.58)\"/\u003e\u003cpath d=\"M253.9 455.7c-12.5.6-40.7-.8-44.6 5.7-3.9 6.5 11.5 9 35.6 7s58.3-4.7 59.7-12.1c1.4-7.4-6.3-5.9-7.2-10.6-.8-4.7 8.6-4.7 10.4-11.7 1.8-7-12.7-6.1-25.6-6.1s-34.4 1.2-36.4 8 9.8 6.8 18.2 8.4c8.4 1.6 5.9 4.7 5.9 4.7-.2 4.2-3.5 6.1-16 6.7z\" class=\"st0\"/\u003e\u003cellipse cx=\"220.6\" cy=\"473.6\" class=\"st0\" rx=\"10.8\" ry=\"3.5\"/\u003e\u003cellipse cx=\"248.4\" cy=\"472.9\" class=\"st0\" rx=\"7.2\" ry=\"3.2\"/\u003e\u003cellipse cx=\"270.9\" cy=\"470.6\" class=\"st0\" rx=\"7.9\" ry=\"2.6\"/\u003e\u003cellipse cx=\"288.2\" cy=\"467.6\" class=\"st0\" rx=\"5.8\" ry=\"2.8\"/\u003e\u003cellipse cx=\"303.2\" cy=\"464.5\" class=\"st0\" rx=\"5.8\" ry=\"2.7\"/\u003e\u003cpath d=\"M146.7 225.9c-10.8 0-20.6 4.1-28 10.8-.5.4-1 .9-1.4 1.4-7.5 7.5-12.2 17.9-12.2 29.4 0 4.3.7 8.5 1.9 12.4.4 1.3.9 2.6 1.4 3.8.5 1.2 1.1 2.5 1.8 3.6 1 1.8 2 3.5 3.2 5.1 7.6 10.2 19.7 16.7 33.4 16.7 23 0 41.6-18.6 41.6-41.6s-18.8-41.6-41.7-41.6zm-3.8 69.4c-3.6 0-6.9-1.5-9.3-3.8-.5-.5-.9-1-1.3-1.5-.3-.4-.5-.7-.7-1.1-.5-.8-.8-1.6-1.1-2.5-.1-.2-.1-.4-.2-.6-.3-1.1-.5-2.3-.5-3.6 0-7.2 5.9-13.1 13.1-13.1 5.9 0 10.9 3.9 12.5 9.2.4 1.2.6 2.5.6 3.9 0 7.2-5.8 13.1-13.1 13.1zM290 198.4c-2.5-.9-5.2-1.6-8-2-2.1-.3-4.2-.5-6.3-.5-9.3 0-18 3.1-24.9 8.3-3.2 2.4-6.1 5.2-8.5 8.5-1.2 1.6-2.3 3.3-3.2 5.1l-1.8 3.6c-.5 1.2-1 2.5-1.4 3.8-1.2 3.9-1.9 8.1-1.9 12.4 0 5 .9 9.9 2.5 14.3.2.6.5 1.3.7 1.9 1.1 2.5 2.3 4.9 3.8 7.1.4.6.8 1.1 1.2 1.6.8 1.1 1.7 2.1 2.5 3.1 1.3 1.5 2.8 2.9 4.3 4.1 7.2 5.9 16.4 9.5 26.5 9.5 23 0 41.6-18.6 41.6-41.6.2-18-11.2-33.3-27.1-39.2zm-14.8 65.1c-1.6.7-3.3 1-5.1 1-1.4 0-2.7-.2-3.9-.6-1.5-.5-3-1.2-4.2-2.2-.4-.3-.8-.7-1.2-1-.3-.3-.6-.6-.8-.9-.4-.5-.8-1.1-1.2-1.7-.3-.5-.6-1-.8-1.6-.3-.7-.5-1.4-.7-2.1-.2-1-.4-1.9-.4-3 0-.5 0-.9.1-1.3 0-.4.1-.9.2-1.3 1-4.7 4.4-8.5 9-9.9 1.2-.4 2.5-.6 3.9-.6 1.8 0 3.5.4 5.1 1 .8.3 1.5.7 2.2 1.2.4.2.7.5 1 .8 2.9 2.4 4.8 6.1 4.8 10.1 0 5.4-3.3 10.1-8 12.1zm-51 80.8c-.4-1-.7-2-.9-2.8-.9-3.1-1.6-6.3-2-8.7-1.1.4-2.2.8-3.3 1.3-3.7 1.8-7 3.8-10 5.7-.1 0-.1.1-.2.1.8 3.7 3.3 11.8 9.8 11.8.8 0 1.7-.1 2.6-.4 3-1 4-3.8 4-7zm8.9-13.6c-1.9 0-3.3.1-4.2.2-.6.1-1.1.2-1.7.3.4 2.3 1 5.5 1.9 8.5 1.1 3.8 2.7 7.3 4.8 8.1.6.2 1.7.4 2.9.4 3.3 0 7.7-1.5 7.6-8.5v-1.1c-.3-3.4-.5-5.8-.7-7.6-1.1 0-2.3-.1-3.3-.1-2.6-.1-5.2-.2-7.3-.2z\" class=\"st0\"/\u003e\u003cpath d=\"M245.5 299.4s-1.2 14-20.9 16.9c-3.7.6-6.9.8-9.7.8-10.5 0-14.6-3.5-17.1-6.5 0 0-18.9 6.4-20.4 17.2-1.1 8.1 6.7 12.3 13.6 12.3 2.3 0 4.5-.5 6.3-1.4 6.9-3.8 17.2-12.1 30.9-13.9 1.2-.2 3-.2 5-.2 4.7 0 11.1.3 17.3.3 7.1 0 13.9-.4 17.6-2.1 8.5-3.8 8.5-10.3 7.9-13.5-.6-3.6-9.2-9.7-30.5-9.9z\" class=\"st0\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/jaeger-operator/jaeger-3.1.2/v1.0.0/model.json b/server/meshmodel/jaeger-operator/jaeger-3.1.2/v1.0.0/model.json new file mode 100644 index 00000000000..55184ca9390 --- /dev/null +++ b/server/meshmodel/jaeger-operator/jaeger-3.1.2/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Jaeger Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#67cfe3", + "secondaryColor": "#ACFFFF", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 449.70001 512.20001\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#221f1f;}.cls-2,.cls-7{fill:none;}.cls-3{fill:#fff;}.cls-4{fill:#67cfe3;}.cls-5{fill:#dfcaa3;}.cls-6{fill:#648c1a;}.cls-7{stroke:#dfcaa3;stroke-linecap:round;stroke-linejoin:round;stroke-width:0;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.86432,496.156c-5.906,1.28554-10.39046,3.72107-10.01635,5.44s5.46523,2.07033,11.371.78479c5.906-1.28532,10.39047-3.72085,10.01613-5.43981C91.861,495.222,86.7701,494.87065,80.86432,496.156Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M55.96457,494.75672c-6.337.50454-11.36432,2.2895-11.22921,3.98684s5.38162,2.66428,11.71859,2.15973c6.33675-.50454,11.3641-2.28949,11.229-3.98683S62.30132,494.25218,55.96457,494.75672Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M35.63913,492.92093c-4.21781.57455-7.491,2.11159-7.31105,3.4328.18014,1.32144,3.74515,1.92653,7.963,1.352,4.21781-.57477,7.491-2.11158,7.311-3.433C43.42194,492.95148,39.85694,492.34616,35.63913,492.92093Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M20.72942,491.06686c-4.07267.5915-7.24863,1.93679-7.09345,3.005.15495,1.06795,3.5824,1.45454,7.65529.863,4.07267-.59127,7.24862-1.93656,7.09345-3.00473C28.22975,490.862,24.80231,490.47559,20.72942,491.06686Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M17.90127,490.7195c4.07289-.59127,7.24884-1.93656,7.09367-3.00472s-3.5824-1.45454-7.65529-.86327c-4.07289.59149-7.24862,1.93678-7.09367,3.005C10.40115,490.92462,13.8286,491.311,17.90127,490.7195Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M16.97691,485.70375c3.53981-.51413,6.3-1.68329,6.1653-2.61167-.13489-.92837-3.11375-1.26413-6.65334-.75023-3.53982.51391-6.3,1.68329-6.1653,2.61166C10.45845,485.88189,13.43732,486.21765,16.97691,485.70375Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M193.99476,475.52932c-6.00188,0-10.86737,1.58809-10.86737,3.547s4.86549,3.54695,10.86737,3.54695c6.00165,0,10.86713-1.58809,10.86713-3.54695S199.99641,475.52932,193.99476,475.52932Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.97549,475.06915c-4.00044,0-7.2435,1.449-7.2435,3.23637s3.24306,3.23638,7.2435,3.23638c4.00065,0,7.24372-1.449,7.24372-3.23638S225.97614,475.06915,221.97549,475.06915Z\"\u003e\u003c/path\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" cx=\"244.55743\" cy=\"475.99328\" rx=\"7.93755\" ry=\"2.61902\"\u003e\u003c/ellipse\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M261.9778,470.28749c-3.19156,0-5.7787,1.243-5.7787,2.7762s2.58714,2.7762,5.7787,2.7762,5.77893-1.243,5.77893-2.7762S265.16936,470.28749,261.9778,470.28749Z\"\u003e\u003c/path\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" cx=\"277.00568\" cy=\"469.90401\" rx=\"5.85919\" ry=\"2.69951\"\u003e\u003c/ellipse\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.34355,103.67729a.04473.04473,0,0,1-.02052-.00112l.02988.01494Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M45.75113,154.80916a14.95375,14.95375,0,0,0,.66484,5.61438A15.02674,15.02674,0,0,1,45.75113,154.80916Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.28,103.64005l.00647.00647a.04653.04653,0,0,1,.03523.00178l.00579.00491-.00379-.0058A.13218.13218,0,0,1,298.28,103.64005Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M65.24273,158.77615a37.39156,37.39156,0,0,0-2.88211-4.58435,25.884,25.884,0,0,0-1.90668-2.3022,21.40346,21.40346,0,0,1,1.90312,2.3022A37.74322,37.74322,0,0,1,65.24273,158.77615Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M53.40374,147.83945l.28493.03656c.18149.0272.36007.06867.54022.10278-.18126-.03522-.35963-.078-.54022-.10635l-.28493-.03656-.37991-.00736a9.79746,9.79746,0,0,0-1.44652.12419,9.79427,9.79427,0,0,1,1.44652-.1204Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"51.577 147.953 51.263 148.04 50.945 148.124 51.263 148.041 51.577 147.953\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.48445,103.88486a4.62684,4.62684,0,0,1,.36163,1.60347,18.89375,18.89375,0,0,1-.21872,3.54539,19.09019,19.09019,0,0,0,.22251-3.54539A4.69719,4.69719,0,0,0,298.48445,103.88486Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M299.80678,97.5325l.4274.14982-.4274-.15339-.85836-.29229a12.25519,12.25519,0,0,0-1.82286-.40911,11.82825,11.82825,0,0,1,1.82286.41268Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M70.71821,174.77141c-.0457-.31592-.10256-.67554-.18616-1.08065-.02743-.14068-.06912-.278-.09766-.41848.02787.14135.06733.28025.09409.42205C70.61387,174.097,70.67184,174.45549,70.71821,174.77141Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M277.15907,121.74355a39.98011,39.98011,0,0,1,1.24207-7.15966,35.36415,35.36415,0,0,1,4.11681-9.68371,20.91539,20.91539,0,0,1,1.89108-2.59449,20.91706,20.91706,0,0,0-1.8913,2.59449,35.3971,35.3971,0,0,0-4.12038,9.68371,40.78716,40.78716,0,0,0-1.24185,7.1561c-.08762.86929-.08048,1.56691-.09877,2.03087-.00356.231-.00156.40823.00112.53063-.00268-.12174-.00446-.29831-.00089-.53063C277.075,123.3069,277.06788,122.60928,277.15907,121.74355Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M289.75921,97.99624a14.0104,14.0104,0,0,0-3.08454,2.03489,20.94357,20.94357,0,0,0-2.26564,2.27456,20.92581,20.92581,0,0,1,2.26586-2.27456A14.009,14.009,0,0,1,289.75921,97.99624Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M294.32015,103.19081a8.94028,8.94028,0,0,0-3.7514,1.70959,20.81423,20.81423,0,0,0-3.43368,3.33492,20.82677,20.82677,0,0,1,3.43725-3.33492,8.90084,8.90084,0,0,1,3.75162-1.70959q.47322-.05787.94844-.09855l-.00245-.00022C294.95222,103.11768,294.63808,103.15067,294.32015,103.19081Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M304.55544,105.57974a20.151,20.151,0,0,1-1.311,5.52186,20.254,20.254,0,0,0,1.31475-5.52565,10.76661,10.76661,0,0,0-.229-2.79984A10.68341,10.68341,0,0,1,304.55544,105.57974Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M52.87936,154.17307l-.05262-.01047a.12584.12584,0,0,0,.051.01092Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"298.459 103.742 298.45 103.738 298.422 103.735 298.459 103.742\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M289.75921,97.99624a14.01687,14.01687,0,0,1,3.50905-1.15779A14.01393,14.01393,0,0,0,289.75921,97.99624Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.37119,103.71675l.00379.00357a.24963.24963,0,0,0,.04749.01471A.11108.11108,0,0,1,298.37119,103.71675Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"70.901 176.175 70.893 176.102 70.901 176.174 70.901 176.175\"\u003e\u003c/polygon\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"298.36 103.694 298.353 103.691 298.354 103.692 298.36 103.694\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M51.59627,170.21159c.02051.02653.03723.05574.05774.08205.23455.31391.4595.58458.66083.81912-.20066-.23432-.4245-.50543-.657-.81912C51.63885,170.26911,51.61566,170.23656,51.59627,170.21159Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M54.32431,154.96634a5.38665,5.38665,0,0,0-1.2608-.73507A5.45964,5.45964,0,0,1,54.32431,154.96634Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M52.34026,171.14286c.19463.22608.36854.42.501.579.2885.31771.453.48225.453.48225l-.00089-.00469c-.00134-.00133-.16454-.161-.45215-.48113C52.70857,171.56268,52.53489,171.36938,52.34026,171.14286Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M48.08432,164.60546c.0107.0214.01583.045.02653.06644.02341.04682.05329.08985.07692.13667-.0243-.04816-.04905-.08807-.07335-.13667C48.10416,164.65116,48.09458,164.62641,48.08432,164.60546Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M51.64309,163.51767c.4129,2.52761.86951,4.70474,1.16893,6.23888C52.5126,168.21884,52.056,166.04528,51.64309,163.51767Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"303.325 100.116 303.314 100.097 303.294 100.072 303.314 100.097 303.325 100.116\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M189.10363,288.719c-.548.06934-1.096.14247-1.65119.23388a38.3278,38.3278,0,0,0-7.878,2.18382,38.36808,38.36808,0,0,1,7.88158-2.18382C188.0076,288.865,188.55561,288.7883,189.10363,288.719Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M196.942,288.57159c-.17189-.01538-.33353-.04459-.50721-.0573q-1.83335-.12875-3.67047-.07736,1.835-.05117,3.67047.07759C196.60843,288.52723,196.77007,288.55643,196.942,288.57159Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" points=\"298.302 103.668 298.302 103.668 298.057 103.556 298.302 103.668\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M214.36657,339.52287l-2.47655-.0622-.012-.00023c-2.778-.06933-5.40592-.13823-7.57458-.13823l-.00981-.00022H204.292a33.76128,33.76128,0,0,0-4.04369.15339q-1.60124.214-3.178.57344.35817,2.32494.86149,4.62269c.02007.0923.04258.18416.0631.27646.31792,1.46123.68713,2.99291,1.13192,4.4887,1.19079,3.99619,2.8529,7.6564,5.05188,8.4782h-.00357a8.09249,8.09249,0,0,0,1.88818.40756c3.42678.36809,9.24739-.66485,9.1435-8.88576q-.00737-.58893-.05128-1.1763C214.85239,344.20576,214.58573,341.43335,214.36657,339.52287Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M193.46859,349.43667c-.01137-.05953-.0272-.11527-.039-.17458-.237-1.20015-.5333-2.35058-.84231-3.42945-.03723-.13132-.07157-.2633-.10969-.3944-.42339-1.43314-.85926-2.69794-1.2006-3.61406a83.47177,83.47177,0,0,0-14.29726,7.61249l-.18617.11682c.65548,3.03371,2.36753,8.79525,6.25092,11.243a7.878,7.878,0,0,0,6.74586.71635,5.23573,5.23573,0,0,0,3.43793-3.07139C194.28526,356.01889,194.0875,352.63291,193.46859,349.43667Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M295.23715,123.92425l.00112-.00111c.00312-.01383.2283-.993.65637-2.64712C295.46345,122.9417,295.23715,123.92425,295.23715,123.92425Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M298.31568,103.67573c.01583.014.02408.03076.04459.041-.02029-.01026-.02787-.02675-.0408-.0408Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M254.05118,311.24963a9.59552,9.59552,0,0,0-.44479-1.68775,11.49739,11.49739,0,0,0-1.81305-3.19513c-2.00946-2.5479-5.2396-4.78433-9.50423-6.52849-6.78354-2.77263-15.70364-4.22271-26.51259-4.31769l-4.74866-.03657a7.32238,7.32238,0,0,1,.89493,3.61629c-.08762,6.22081-8.00331,12.43806-18.76834,14.648q-.76417.16053-1.53414.29229c-7.973,1.32256-15.28538.08562-19.81176-2.80184a9.80461,9.80461,0,0,1-4.26374-4.87908l-.00044-.00112-3.89029,1.3152c-1.55577.52639-10.889,3.87-17.88813,10.1383a25.5708,25.5708,0,0,0-6.18849,7.90522,17.59325,17.59325,0,0,0-1.5736,5.2396,16.94661,16.94661,0,0,0,.48961,7.05421,16.05017,16.05017,0,0,0,3.37148,6.07055c3.83188,4.37967,10.09639,6.99512,16.752,6.99512a20.01475,20.01475,0,0,0,9.669-2.30131c1.69867-.93863,3.51417-2.07479,5.43557-3.27651,4.93126-3.09324,10.76659-6.751,17.55861-8.937a40.36893,40.36893,0,0,1,7.11262-1.61975q.33276-.0438.77588-.07669c.51635-.03835,1.17651-.062,1.91114-.078.52461-.01137,1.07129-.02052,1.7038-.02052h.00112q3.83556.02475,7.66978.14247c1.62019.04013,3.34874.08405,5.11809.11772,1.76868.03389,3.57838.05752,5.36022.05752h.00178c3.93556,0,7.28118-.1146,10.15191-.35851a33.928,33.928,0,0,0,10.92488-2.36641c7.93331-3.54472,12.37051-10.02906,12.33283-17.73719a21.20459,21.20459,0,0,0-.23432-2.69817C254.07905,311.69665,254.08931,311.47882,254.05118,311.24963Zm-6.6034,6.96257a11.16842,11.16842,0,0,1-1.356,2.95145,12.03651,12.03651,0,0,1-1.56045,1.92452,14.54158,14.54158,0,0,1-2.19942,1.80457,19.35589,19.35589,0,0,1-2.93606,1.61128c-3.93778,1.75709-11.068,2.16977-18.46513,2.16977-6.50574,0-13.21951-.31771-18.14363-.31771a43.34184,43.34184,0,0,0-5.2309.23009,50.89,50.89,0,0,0-14.6667,4.39528c-7.3057,3.36279-13.20724,7.697-17.70486,10.18335a13.77564,13.77564,0,0,1-6.56773,1.49757c-5.85584,0-12.35534-2.88166-13.97955-8.51767a10.01213,10.01213,0,0,1-.38325-2.79627,11.775,11.775,0,0,1,.10568-1.54417c1.32924-9.98447,16.81171-16.36581,20.54237-17.765.24859-.0932.44524-.16432.58168-.21292.14559-.05173.22318-.078.22318-.078,2.54611,3.14519,6.8783,6.76883,17.8879,6.76883q2.27981,0,4.96092-.223c.17167-.0136.34245-.03567.51412-.05039,1.47751-.13354,3.029-.30923,4.70184-.55582,6.46562-.95312,11.03346-3.04419,14.258-5.469a20.03462,20.03462,0,0,0,6.76549-8.78076c.2-.5168.35784-.99414.4818-1.41953a13.06625,13.06625,0,0,0,.4245-1.93746c.01226-.09564.0165-.14626.0165-.14626,22.34093.19,31.37808,6.59337,32.00636,10.37041.03567.21292.06889.43944.09809.67755a14.52864,14.52864,0,0,1,.10747,1.558A12.40964,12.40964,0,0,1,247.44778,318.2122Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M266.16128,203.5211a41.775,41.775,0,0,0-12.06149-3.08632,42.54948,42.54948,0,0,0-4.29674-.21694h-.00022a42.02785,42.02785,0,1,0,0,84.05568h.00022a42.48524,42.48524,0,0,0,4.29674-.21693,42.03759,42.03759,0,0,0,12.06149-80.53549Zm-22.03861,65.98763A13.25262,13.25262,0,1,1,257.37518,256.256,13.25266,13.25266,0,0,1,244.12267,269.50873Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M126.38181,313.94467a41.89093,41.89093,0,0,0,4.31569-.8869c.68914-.18951,1.34819-.474,2.02708-.69873,1.07574-.35673,2.16754-.67934,3.20271-1.11833.81132-.344,1.57738-.79327,2.36753-1.18878.845-.42317,1.715-.78992,2.53273-1.2715a42.08161,42.08161,0,0,0,19.67911-45.73464q-.35215-1.525-.81311-3.00651a42.03321,42.03321,0,0,0-82.16638,12.494v.00357a42.01309,42.01309,0,0,0,47.7158,41.63722C125.62734,314.12192,125.99922,314.00755,126.38181,313.94467Zm-10.613-39.89552a13.25251,13.25251,0,0,1,0,26.505l-.00179-.00022a13.25229,13.25229,0,0,1,0-26.50457Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M117.76693,455.28526c-7.196,1.64382-28.36421,13.15039-46.65766,16.64606-18.28989,3.49589-34.11772,5.34416-39.67012,7.40067-5.545,2.05652-9.86251,6.166,1.03026,10.27543,10.89278,4.11324,63.71664,5.5524,68.44345,0,4.72681-5.54861-3.25845-7.95226-14.79779-7.8098-8.21891.10234-7.21429-2.76148-7.196-3.083,0,0,.515-3.59421,13.15753-5.34394,12.61687-1.7426,68.44345-6.988,67.41318-12.94952C158.46352,454.46345,124.95937,453.64165,117.76693,455.28526Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M227.52432,461.03854h-.00022c-12.54017.61735-40.90081-.8218-44.80939,5.75685-3.905,6.57508,11.51013,9.04094,35.76511,6.988,24.25475-2.05673,58.57691-4.72681,60.01629-12.12749,1.43916-7.40067-6.37063-5.96152-7.19623-10.68833-.81823-4.72681,8.63539-4.72681,10.48366-11.71458,1.8485-6.988-12.74105-6.16619-25.69034-6.16619s-34.5304,1.23114-36.58691,8.01447c-2.05673,6.78332,9.86631,6.78332,18.29346,8.42715,8.42715,1.6436,5.96129,4.72681,5.96129,4.72681C243.34836,458.57269,240.0607,460.42118,227.52432,461.03854Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M422.05663,385.0301v.00357a30.592,30.592,0,0,1-7.78036,11.93374c-6.137,5.80813-11.51014,9.28574-16.31364,10.55679,26.53421-3.72954,42.28534-8.37587,42.28534-13.41325C440.248,390.87814,433.7313,387.80608,422.05663,385.0301Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.41945,394.111c0,3.50681,7.64169,6.81988,21.223,9.76776a67.46813,67.46813,0,0,1,.5333-19.65235C29.26581,387.20723,21.41945,390.56043,21.41945,394.111Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M376.67,377.6622c-1.68753-12.3685-6.96592-17.91711-11.616-22.8156-4.336-4.55892-8.43071-8.86547-7.11218-16.76668,1.21643-7.31305,7.03192-11.80955,16.53281-12.97849-5.77135-39.00149-14.22413-88.20549-25.09506-130.184-5.428-20.96354-14.01233-35.52388-25.526-45.204C310.67771,156.453,294.828,163.861,277.13365,171.53548q-19.1283,8.27977-38.53038,15.90452c-10.10375,10.84173-21.14257,21.52627-27.90783,24.56912a31.21262,31.21262,0,0,1-12.82132,3.03193,19.75473,19.75473,0,0,1-16.12368-7.63456,52.42567,52.42567,0,0,1-7.14874,1.50493c-1.98338.20824-4.90584.45661-8.55869.71969a11.25822,11.25822,0,0,1-1.84828,11.2252c-2.9588,3.5688-7.73309,5.36245-14.5017,5.36245-9.7312,0-23.59013-3.71126-42.11747-11.196q-3.74894-1.519-7.53222-2.95145-2.12595.01071-4.25549.01093h-.01092c-17.70531,0-31.53883-.55538-42.38412-1.44295-11.87911,24.5874-6.71755,51.86315-2.37065,74.39025,4.16787,21.592,18.62588,60.00916,32.03557,93.01613,4.97139,12.2481,9.80053,23.74352,13.90642,33.36525,36.302,3.21452,82.83925,5.13949,133.58452,5.13949,60.39264,0,114.78719-2.73607,153.09106-7.10838-2.7907-11.4845-6.32672-27.46951-6.93315-31.53147ZM266.16128,280.97093a41.79662,41.79662,0,0,1-12.06149,3.08566,42.48524,42.48524,0,0,1-4.29674.21693h-.00022a42.02785,42.02785,0,1,1,0-84.05568h.00022a42.54948,42.54948,0,0,1,4.29674.21694,42.038,42.038,0,0,1,12.06149,80.53615ZM77.52717,272.53687v-.00357a42.03492,42.03492,0,0,1,82.16638-12.494q.46052,1.48052.81311,3.00651a42.04,42.04,0,0,1-19.67911,45.73464c-.81778.48158-1.68774.84833-2.53273,1.2715-.79015.39551-1.55621.84476-2.36753,1.18878-1.03517.439-2.127.7616-3.20271,1.11833-.67889.22473-1.33794.50922-2.02708.69873a41.89093,41.89093,0,0,1-4.31569.8869c-.38259.06288-.75447.17725-1.13884.22942a42.01309,42.01309,0,0,1-47.7158-41.63722Zm112.26315,88.976a7.878,7.878,0,0,1-6.74586-.71635c-3.88339-2.44779-5.59544-8.20933-6.25092-11.243l.18617-.11682a83.47177,83.47177,0,0,1,14.29726-7.61249c.34134.91612.77721,2.18092,1.2006,3.61406.03812.1311.07246.26308.10969.3944.309,1.07887.60531,2.2293.84231,3.42945.01182.05931.02765.115.039.17458.61891,3.19624.81667,6.58222-.24034,9.00482A5.23573,5.23573,0,0,1,189.79032,361.51288Zm16.27306-3.19045a8.09249,8.09249,0,0,1-1.88818-.40756h.00357c-2.199-.8218-3.86109-4.482-5.05188-8.4782-.44479-1.49579-.814-3.02747-1.13192-4.4887-.02052-.0923-.043-.18416-.0631-.27646q-.5-2.29752-.86149-4.62269,1.57516-.35884,3.178-.57344a33.76128,33.76128,0,0,1,4.04369-.15339h.00156l.00981.00022c2.16866,0,4.79659.0689,7.57458.13823l.012.00023,2.47655.0622c.21916,1.91048.48582,4.68289.789,8.7375q.04415.58725.05128,1.1763C215.31077,357.65758,209.49016,358.69052,206.06338,358.32243Zm35.94793-25.96279a33.928,33.928,0,0,1-10.92488,2.36641c-2.87073.24391-6.21635.35851-10.15191.35851h-.00178c-1.78184,0-3.59154-.02363-5.36022-.05752-1.76935-.03367-3.4979-.07759-5.11809-.11772q-3.83389-.11772-7.66978-.14247h-.00112c-.63251,0-1.17919.00915-1.7038.02052-.73463.01605-1.39479.03968-1.91114.078q-.44278.03277-.77588.07669a40.36893,40.36893,0,0,0-7.11262,1.61975c-6.792,2.186-12.62735,5.8438-17.55861,8.937-1.9214,1.20172-3.7369,2.33788-5.43557,3.27651a20.01475,20.01475,0,0,1-9.669,2.30131c-6.65557,0-12.92008-2.61545-16.752-6.99512a16.05017,16.05017,0,0,1-3.37148-6.07055,16.94661,16.94661,0,0,1-.48961-7.05421,17.59325,17.59325,0,0,1,1.5736-5.2396A25.5708,25.5708,0,0,1,145.766,317.812c6.99914-6.2683,16.33236-9.61191,17.88813-10.1383l3.89029-1.3152a7.22014,7.22014,0,0,1-.29586-1.16158c-.88311-5.335,4.28715-10.86134,12.32592-14.06026a38.3278,38.3278,0,0,1,7.878-2.18382c.55516-.09141,1.10317-.16454,1.65119-.23388q1.8233-.23074,3.66065-.282,1.835-.05117,3.67047.07736c.17368.01271.33532.04192.50721.0573,5.867.52082,10.68878,2.52159,13.16979,5.552a8.53683,8.53683,0,0,1,.91611,1.36045l4.74866.03657c10.80895.095,19.72905,1.54506,26.51259,4.31769,4.26463,1.74416,7.49477,3.98059,9.50423,6.52849a11.49739,11.49739,0,0,1,1.81305,3.19513,9.59552,9.59552,0,0,1,.44479,1.68775c.03813.22919.02787.447.05864.67465a21.20459,21.20459,0,0,1,.23432,2.69817C254.38182,322.33058,249.94462,328.81492,242.01131,332.35964Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M304.33026,102.77611a7.92079,7.92079,0,0,0-.2205-1.03561,5.36251,5.36251,0,0,0-.482-1.09581l-.30322-.52884-.01092-.01895-.0194-.02475-.39708-.50142a6.91464,6.91464,0,0,0-2.04558-1.60347l-.16075-.08406-.0767-.04392-.30321-.12775-.02564-.01092-.05106-.01829-.4274-.14982-.85836-.29229a11.82825,11.82825,0,0,0-1.82286-.41268,16.60171,16.60171,0,0,0-1.91405-.14626,18.4614,18.4614,0,0,0-1.94325.15718,14.01078,14.01078,0,0,0-6.59337,3.19268,20.91808,20.91808,0,0,0-4.15694,4.86905,35.36415,35.36415,0,0,0-4.11681,9.68371,39.98011,39.98011,0,0,0-1.24207,7.15966c-.09119.86573-.084,1.56335-.10211,2.02731-.00357.23232-.00179.40889.00089.53063.00267.12507.00624.19263.00624.19263l1.315-2.38894c.83652-1.50492,2.00546-3.63813,3.452-6.09663a61.08309,61.08309,0,0,1,5.304-7.77323,20.81423,20.81423,0,0,1,3.43368-3.33492,8.94028,8.94028,0,0,1,3.7514-1.70959c.31793-.04014.63207-.07313.94978-.09877l.00245.00022.00134-.00022c.32506.03656.64656,0,.97519.05863.33242.08027.66128.0767,1.00462.18617l.80352.21916.24458.1117c-.01338-.0078-.02831-.01628-.02608-.02163l.01092.00045-.00647-.00647a.13218.13218,0,0,0,.0437.00736l.00379.0058c.01672.00847.03233.0185.02966.02475l-.0136-.00067.00936.01382.00713.00312.02587.00781.0729.03656-.00914-.00089.00936.00468-.03656-.00736a.24963.24963,0,0,1-.04749-.01471.42157.42157,0,0,1,.10947.16454,4.69719,4.69719,0,0,1,.36542,1.60347,19.09019,19.09019,0,0,1-.22251,3.54539c-.04659.33777-.07491.67688-.132,1.00975-.25573,1.53792-.58079,3.03192-.90586,4.42-.65749,2.77621-1.2822,5.13593-1.69488,6.81253-.42807,1.65409-.65325,2.63329-.65637,2.64712a24.59877,24.59877,0,0,0,1.80323-2.081,42.32149,42.32149,0,0,0,4.02563-6.02707,36.664,36.664,0,0,0,2.10021-4.47487c.02809-.07469.04927-.1632.07714-.23856a20.151,20.151,0,0,0,1.311-5.52186A10.68341,10.68341,0,0,0,304.33026,102.77611Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M298.36762,103.71318l-.01828-.02207.00446.00134-.00089-.00134-.02988-.01494-.00356-.00022c.01293.014.02051.03054.0408.0408l.01092.00268.00379.00089-.00379-.00357Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" points=\"42.964 180.96 43.541 180.96 42.964 179.919 42.964 180.96\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M46.416,160.42354a27.17617,27.17617,0,0,0,1.66835,4.18192c.01026.02095.01984.0457.0301.06644.0243.0486.049.08851.07335.13667.42517.84454.89292,1.66634,1.38832,2.47031.09186.14893.18483.30879.27557.45081.544.85234,1.12368,1.68217,1.74461,2.4819.01939.025.04258.05752.06153.08205.23254.31369.45638.5848.657.81912l.02542.0301c.19463.22652.36831.41982.501.57544.28761.32016.45081.4798.45215.48113-.00134-.0078-.06956-.37255-.18728-.97341-.07692-.39239-.17056-.86527-.29408-1.46947-.29942-1.53414-.756-3.71127-1.16893-6.23888-.20445-1.26391-.39084-2.61924-.48225-3.99263-.03523-.61869-.04593-1.255-.02765-1.86811.00179-.0544-.00468-.1117-.00245-.16588a8.18343,8.18343,0,0,1,.24948-1.81974,3.0401,3.0401,0,0,1,.52952-1.13973,1.33328,1.33328,0,0,1,.5955-.34334l.19731-.03657.31771-.06577c.04838-.00758.0408.00557.02118.02163l-.01471.01092-.03568.02586a.20709.20709,0,0,1-.10969.02921l-.002-.00045-.00157.00045a.12584.12584,0,0,1-.051-.01092l.0437.02185a.443.443,0,0,0,.17546.03656l.01761.01026a5.38665,5.38665,0,0,1,1.2608.73507,20.77418,20.77418,0,0,1,3.13426,3.09747c1.01533,1.21286,2.009,2.48392,2.95144,3.75519,1.87748,2.557,3.61629,5.05187,5.14307,7.196q1.8564,2.63328,3.80646,5.19813c.94844,1.25165,1.53971,1.95975,1.541,1.96109l-.008-.07269-.06822-.58435c-.03144-.19977-.064-.45483-.10613-.74578-.04637-.31592-.10434-.67443-.18973-1.07708-.02676-.1418-.06622-.2807-.09409-.42205-.22183-1.09269-.47087-2.17824-.75982-3.25287-.07781-.28873-.17078-.57344-.25394-.8606q-.34146-1.18989-.74-2.36129c-.31971-.94777-.67889-1.88082-1.05122-2.80853-.17279-.43029-.32885-.86661-.51279-1.29223-.57455-1.32968-1.1919-2.64109-1.87391-3.92061a37.74322,37.74322,0,0,0-2.88567-4.58435,21.40346,21.40346,0,0,0-1.90312-2.3022,19.07684,19.07684,0,0,0-2.29039-2.09219A11.25,11.25,0,0,0,56.608,148.834a10.05412,10.05412,0,0,0-1.80525-.74243c-.18638-.045-.38147-.07536-.57387-.11282-.18015-.03411-.35873-.07558-.54022-.10278l-.28493-.03656-.37991-.00714a9.79427,9.79427,0,0,0-1.44652.1204l-.31414.08784-.3177.08383-.41648.12418-.12061.05128-.24458.10947a7.05077,7.05077,0,0,0-3.2803,2.83462,7.75366,7.75366,0,0,0-.78412,1.7825,8.28838,8.28838,0,0,0-.34825,1.78273A15.02674,15.02674,0,0,0,46.416,160.42354Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M67.49276,422.84793c9.85538,0,16.79232-5.36245,21.6616-12.32458-5.57426-12.9203-14.74294-34.69114-23.43674-57.60551a43.14336,43.14336,0,0,0-8.01447,9.58494c-7.324,11.34961-13.35484,37.76321-5.75685,51.7062C55.11334,420.02424,60.20178,422.84793,67.49276,422.84793Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M415.33908,357.39985c-5.77157-14.94-18.056-25.55166-29.86936-25.79647l-.42-.03656a39.55353,39.55353,0,0,0-5.33681-.34335c-6.43262,0-14.33,1.37361-15.41871,7.91213-.75982,4.53686,1.22735,6.86,5.42443,11.27626,4.79637,5.041,11.36053,11.95225,13.333,26.38105,2.25026,16.52188,6.283,24.90131,11.985,24.90131,2.66651,0,7.5213-1.59611,15.54646-9.19767C420.47144,383.13055,419.52166,368.22686,415.33908,357.39985Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M102.51633,287.30166a13.25246,13.25246,0,0,0,13.25072,13.25228l.00179.00022a13.25251,13.25251,0,0,0,0-26.505l-.00179.00022A13.25262,13.25262,0,0,0,102.51633,287.30166Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M244.12267,243.0035a13.25262,13.25262,0,1,0,13.25251,13.2525A13.2526,13.2526,0,0,0,244.12267,243.0035Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M319.481,122.32078c-1.68753,10.04533-4.93126,21.08058-7.07918,24.09044l-2.01638,2.82012c9.13212-4.44567,17.27791-8.6646,24.19277-12.5404,24.04317-13.4788,27.03118-19.38191,27.37809-20.87234.223-.97519-.01449-1.27841-.11682-1.40259-.26286-.32886-1.95061-1.9689-9.54481-1.9689-8.2994,0-19.91544,1.89956-32.03913,4.5295Q319.92711,119.65705,319.481,122.32078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M310.10428,149.37l-3.46669-.28493q-7.51862-.52874-15.06065-.51123c-8.9678,0-20.79208.53687-30.49407,2.83462a11.26166,11.26166,0,0,1-1.47929,12.09092c-2.37444,2.86382-6.39248,7.63433-11.20691,13.10625q13.15206-5.3358,26.17615-10.9804Q292.51156,157.88122,310.10428,149.37Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M79.82113,139.2627v-.00379a133.923,133.923,0,0,0,34.74956,4.20822c20.43781,0,63.82633-3.97078,124.81425-30.56341l1.37361-.59907a36.3938,36.3938,0,0,1,.84008-10.04534,31.4539,31.4539,0,0,1,7.32019-14.81607,49.58223,49.58223,0,0,0-1.51942-4.96046c-7.03905-3.75162-65.05724-25.36171-95.31387-25.36171a39.992,39.992,0,0,0-7.84636.672c-26.81558,5.47214-67.563,52.08968-69.02423,58.70133-.43833,2.85668-.30679,11.83519.01471,21.52626Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M173.9295,202.508a42.55732,42.55732,0,0,0,5.56333-1.15066,11.27266,11.27266,0,0,1,19.00957-8.931,11.80569,11.80569,0,0,0,2.94409-.97185c5.5524-2.64087,25.59559-24.03559,40.82434-42.35825a11.19373,11.19373,0,0,1,1.80814-1.73145c-34.79348,15.035-83.4129,31.46548-129.70537,31.46548a165.05073,165.05073,0,0,1-21.0623-1.27841l1.01533,2.988L88.537,182.75711c-.04013.01829-1.0374.40176-2.70307,1.09581q11.17759,2.60822,30.17971,10.27186c23.15916,9.35129,32.01371,9.70935,34.22718,9.57781a11.26885,11.26885,0,0,1,10.21344-.146C166.45948,203.17285,171.13145,202.8003,173.9295,202.508Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M79.29875,205.45967a22.87731,22.87731,0,0,0-2.62638-.4274,11.17895,11.17895,0,0,1-11.91189-10.95141c-3.04285,1.72431-6.0857,3.59087-8.93481,5.56333L50.75908,203.151l-3.72576-4.90584a130.9118,130.9118,0,0,1-11.09009-17.67967C26.96807,184.8027,19.95466,189.431,18.24149,193.818a1.65218,1.65218,0,0,0,.146,1.77158C19.84876,197.73371,28.54256,204.29074,79.29875,205.45967Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M241.95669,118.8066c-24.36467,10.62613-77.762,31.10051-127.386,31.10051a140.18855,140.18855,0,0,1-36.42973-4.431q1.80825,2.73965,3.57972,5.84447A151.26672,151.26672,0,0,1,90.86373,170.699a152.44449,152.44449,0,0,0,23.50987,1.69132c28.50311,0,73.05321-6.524,134.18-34.03723.9607-3.01364,2.23933-6.78689,3.821-10.98419-.12418.00736-.2448.02921-.369.02921a9.20479,9.20479,0,0,1-1.92876-.208C246.278,126.35354,243.47254,123.25941,241.95669,118.8066Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M43.54122,180.9599a128.80816,128.80816,0,0,0,8.62067,13.3914c14.7648-10.22437,34.0738-17.60676,34.0738-17.60676s-.497-1.45744-1.42467-3.83545q-1.26714-3.25164-2.68858-6.44-1.03172-2.31558-2.13321-4.59905-.45482-.93674-.92413-1.86656l-.24837-.49317q-.56987-1.11767-1.1763-2.25383l-.13154-.24836q-2.27546-4.2623-4.946-8.29561c-5.92853-8.88732-13.44246-16.44875-21.8549-16.44518a15.72243,15.72243,0,0,0-8.20442,2.44757c-15.455,9.35128-7.47737,30.74957.4604,45.204Zm2.20991-26.15074a8.28838,8.28838,0,0,1,.34825-1.78273,7.75366,7.75366,0,0,1,.78412-1.7825,7.05077,7.05077,0,0,1,3.2803-2.83462l.24458-.10947.12061-.05128.41648-.12418.3177-.084.31414-.08762a9.79746,9.79746,0,0,1,1.44652-.12419l.37991.00736.28493.03656c.18059.02832.359.07113.54022.10635.1924.03746.38749.06778.57387.11282a10.05412,10.05412,0,0,1,1.80525.74243,11.25,11.25,0,0,1,1.55554.96337,19.07684,19.07684,0,0,1,2.29039,2.09219,25.884,25.884,0,0,1,1.90668,2.3022,37.39156,37.39156,0,0,1,2.88211,4.58435c.682,1.27952,1.29936,2.59093,1.87391,3.92061.18394.42562.34.86194.51279,1.29223.37233.92771.73151,1.86076,1.05122,2.80853q.396,1.17218.74,2.36129c.08316.28716.17613.57187.25394.8606.28895,1.07463.538,2.16018.75982,3.25287.02854.14046.07023.2778.09766.41848.0836.40511.14046.76473.18616,1.08065.04214.291.07469.546.10613.74578l.06822.58435.00847.07313-.00044-.00044c-.00134-.00134-.59261-.70944-1.541-1.96109q-1.95-2.5644-3.80646-5.19813c-1.52678-2.14414-3.26559-4.639-5.14307-7.196-.94242-1.27127-1.93611-2.54233-2.95144-3.75519a20.77418,20.77418,0,0,0-3.13426-3.09747,5.45964,5.45964,0,0,0-1.2608-.73507l-.01761-.01026a.443.443,0,0,1-.17546-.03656l-.0437-.02185.05262.01047.002.00045a.20709.20709,0,0,0,.10969-.02921l.03568-.02586.01471-.01092c.01962-.01606.0272-.02921-.02118-.02163l-.31771.06577-.19731.03657a1.33328,1.33328,0,0,0-.5955.34334,3.0401,3.0401,0,0,0-.52952,1.13973,8.18343,8.18343,0,0,0-.24948,1.81974c-.00223.05418.00424.11148.00245.16588-.01828.61312-.00758,1.24942.02765,1.86811.09141,1.37339.2778,2.72872.48225,3.99263.4129,2.52761.86951,4.70117,1.16893,6.23888.12352.6042.21716,1.07708.29408,1.46947.11772.60086.18594.96561.18728.97341l.00089.00469s-.16454-.16454-.453-.48225c-.13243-.159-.30634-.35293-.501-.579l-.02542-.0301c-.20133-.23454-.42628-.50521-.66083-.81912-.02051-.02631-.03723-.05552-.05774-.08205-.62093-.79973-1.2006-1.62956-1.74461-2.4819-.09074-.142-.18371-.30188-.27557-.45081-.4954-.804-.96315-1.62577-1.38832-2.47031-.02363-.04682-.05351-.08985-.07692-.13667-.0107-.02141-.01583-.045-.02653-.06644a27.17617,27.17617,0,0,1-1.66835-4.18192A14.95375,14.95375,0,0,1,45.75113,154.80916Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M257.82086,82.97216v-.00357a8.97445,8.97445,0,0,1,1.92876.2118c4.72681,1.04119,7.91949,5.589,8.99322,11.89741,9.00794-12.65344,18.83412-19.04971,29.33249-19.04971a21.64209,21.64209,0,0,1,11.57212,3.05756c5.53791-6.73962,9.06278-11.38595,9.06278-11.38595-4.1643.75983-12.87259,1.89577-12.87259,1.89577,32.94142-12.11657,30.2894-45.058,30.2894-45.058,0,5.68037-17.0369,19.309-17.0369,19.309.75626-4.92033-1.89219-11.36031-1.89219-11.36031.75625,6.44-19.68891,23.097-19.68891,23.097,1.51228-3.02814.37634-8.32838.37634-8.32838-1.13238,6.06007-10.22058,8.32838-10.22058,8.32838,5.68016-6.81253,16.28064-42.78208,8.32838-45.05419S277.06409,34.002,277.06409,34.002c-.37991-6.05627-3.788-6.05627-3.788-6.05627,1.51585,18.92909-13.62885,34.07379-13.62885,34.07379-1.13594-3.78439-7.196-5.67659-7.196-5.67659,1.94325,4.21179-.27044,23.39282-.94978,28.83553A10.97588,10.97588,0,0,1,257.82086,82.97216Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M249.75177,119.82951a4.39961,4.39961,0,0,0,.5041.47489c.0622.04749.128.08026.19374.12418a2.70263,2.70263,0,0,0,1.00819.4711,2.99818,2.99818,0,0,0,1.05925.01828,6.34349,6.34349,0,0,0,3.17439-1.78607q1.53-3.58073,3.21809-7.09033,1.58887-3.28743,3.21453-6.27543c1.61462-8.56248-.55894-15.59418-3.75875-16.29536a2.47615,2.47615,0,0,0-.548-.05864c-3.28386,0-8.05816,5.71672-9.92851,14.22792-1.35889,6.1769-.73039,11.66732.86952,14.73559a6.8487,6.8487,0,0,0,.96783,1.42466v.00357Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M298.34934,103.69111l.01828.02207.00357.00357a.11108.11108,0,0,0,.05128.01828l.0272.00268.00914.00089-.0729-.03656-.02587-.00781-.00624-.00178Z\"\u003e\u003c/path\u003e\u003cpolygon xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" points=\"298.075 82.468 298.077 82.468 298.079 82.468 298.075 82.468\"\u003e\u003c/polygon\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M298.07734,82.46829c-18.75318.00133-32.549,28.22575-39.75952,47.40277q-2.85334,7.59385-5.12879,15.38593a11.13807,11.13807,0,0,1,2.64466.90229c10.92577-3.26937,25.06585-4.02919,35.74325-4.02919,9.03715,0,15.5866.53709,15.5866.53709C310.00194,138.69283,326.47165,82.47141,298.07734,82.46829Zm5.16714,28.63331c-.02787.07536-.04905.16387-.07714.23856a36.664,36.664,0,0,1-2.10021,4.47487,42.32149,42.32149,0,0,1-4.02563,6.02707,24.59877,24.59877,0,0,1-1.80323,2.081l-.00112.00111s.2263-.98255.65749-2.64823c.41268-1.6766,1.03739-4.03632,1.69488-6.81253.32507-1.3881.65013-2.8821.90586-4.42.05707-.33287.08539-.672.132-1.00975a18.89375,18.89375,0,0,0,.21872-3.54539,4.62684,4.62684,0,0,0-.36163-1.60347.42157.42157,0,0,0-.10947-.16454l-.00379-.00089-.01092-.00268c-.02051-.01026-.02876-.027-.04459-.041l.00379.00022.00356.00022a.04473.04473,0,0,0,.02052.00112l.0136.00067c.00267-.00625-.01294-.01628-.02966-.02475l-.00579-.00491a.04653.04653,0,0,0-.03523-.00178l-.01092-.00045c-.00223.00535.0127.01383.02608.02163l.00067.00045-.24525-.11215-.80352-.21916c-.34334-.10947-.6722-.1059-1.00462-.18617-.32863-.05863-.65013-.02207-.97519-.05863l-.00134.00022q-.47523.0408-.94844.09855a8.90084,8.90084,0,0,0-3.75162,1.70959,20.82677,20.82677,0,0,0-3.43725,3.33492,61.08309,61.08309,0,0,0-5.304,7.77323c-1.44651,2.4585-2.61545,4.59171-3.452,6.09663l-1.315,2.38894s-.00357-.06756-.00624-.19263c-.00268-.1224-.00468-.29965-.00112-.53063.01829-.464.01115-1.16158.09877-2.03087a40.78716,40.78716,0,0,1,1.24185-7.1561,35.3971,35.3971,0,0,1,4.12038-9.68371,20.93213,20.93213,0,0,1,4.15694-4.86905,14.01285,14.01285,0,0,1,6.59359-3.19268,18.4614,18.4614,0,0,1,1.94325-.15718,16.60171,16.60171,0,0,1,1.91405.14626,12.25519,12.25519,0,0,1,1.82286.40911l.85836.29229.4274.15339.05106.01829.02564.01092.30321.12775.0767.04392.16075.08406a6.91464,6.91464,0,0,1,2.04558,1.60347l.39708.50142.0194.02452.01092.01918.30322.52884a5.36251,5.36251,0,0,1,.482,1.09581,7.92079,7.92079,0,0,1,.2205,1.03561,10.76661,10.76661,0,0,1,.229,2.79984A20.254,20.254,0,0,1,303.24448,111.1016Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M197.87769,208.22473a24.72125,24.72125,0,0,0,10.0197-2.42907c7.47-3.36056,25.70885-21.67229,46.46436-46.65053a4.454,4.454,0,0,0-6.84352-5.70245l-.00936.01137c-9.03336,10.87071-34.39886,40.00589-43.14015,44.15927l-.12418.05841a18.75549,18.75549,0,0,1-4.68668,1.48664l-3.324.52238-2.43286-2.31959a4.5007,4.5007,0,0,0-3.07563-1.22,4.45515,4.45515,0,0,0-3.74782,6.84909C187.3209,203.52356,190.52071,208.22473,197.87769,208.22473Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M153.4335,209.72252l-1.30784.69405-1.47929.08762q-.53107.0301-1.063.02921c-4.16052,0-14.38132-1.31141-36.12674-10.08926-23.97-9.68371-33.46737-11.13022-36.996-11.13022a7.06957,7.06957,0,0,0-1.24563.08762,4.44992,4.44992,0,0,0-3.58352,5.17628,4.49338,4.49338,0,0,0,4.6247,3.65285l.48938-.02943.49317.04035c2.64466.21917,11.14115,1.68017,32.88658,10.46159,17.58112,7.10126,30.89226,10.703,39.57135,10.703,4.54421,0,7.6564-.979,9.2563-2.90039a4.45888,4.45888,0,0,0-3.42633-7.30213A4.51522,4.51522,0,0,0,153.4335,209.72252Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M247.72447,312.30531c-.62828-3.777-9.66543-10.18045-32.00636-10.37041,0,0-.00424.05062-.0165.14626a13.06625,13.06625,0,0,1-.4245,1.93746c-.124.42539-.28181.90273-.4818,1.41953a20.03462,20.03462,0,0,1-6.76549,8.78076c-3.22456,2.42482-7.7924,4.51589-14.258,5.469-1.67281.24659-3.22433.42228-4.70184.55582-.17167.01472-.34245.03679-.51412.05039q-2.67978.22339-4.96092.223c-11.0096,0-15.34179-3.62364-17.8879-6.76883,0,0-.07759.02631-.22318.078-.13644.0486-.33309.11972-.58168.21292-3.73066,1.39924-19.21313,7.78058-20.54237,17.765a11.775,11.775,0,0,0-.10568,1.54417,10.01213,10.01213,0,0,0,.38325,2.79627c1.62421,5.636,8.12371,8.51767,13.97955,8.51767a13.77564,13.77564,0,0,0,6.56773-1.49757c4.49762-2.48637,10.39916-6.82056,17.70486-10.18335a50.89,50.89,0,0,1,14.6667-4.39528,43.34184,43.34184,0,0,1,5.2309-.23009c4.92412,0,11.63789.31771,18.14363.31771,7.39711,0,14.52735-.41268,18.46513-2.16977a19.35589,19.35589,0,0,0,2.93606-1.61128,14.54158,14.54158,0,0,0,2.19942-1.80457,12.03651,12.03651,0,0,0,1.56045-1.92452,11.16842,11.16842,0,0,0,1.356-2.95145,12.40964,12.40964,0,0,0,.48225-3.67135,14.52864,14.52864,0,0,0-.10747-1.558C247.79336,312.74475,247.76014,312.51823,247.72447,312.30531Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-7\" d=\"M215.70161,302.08116a13.06625,13.06625,0,0,1-.4245,1.93746\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M171.80855,311.2387c4.52638,2.88746,11.83877,4.1244,19.81176,2.80184q.76986-.13176,1.53414-.29229c10.765-2.2099,18.68072-8.42715,18.76834-14.648a7.32238,7.32238,0,0,0-.89493-3.61629,8.53683,8.53683,0,0,0-.91611-1.36045c-2.481-3.03037-7.3028-5.03114-13.16979-5.552-.17189-.01516-.33353-.04436-.50721-.05707q-1.83335-.12876-3.67047-.07759-1.835.05149-3.66065.282c-.548.06934-1.096.146-1.64762.23388a38.36808,38.36808,0,0,0-7.88158,2.18382c-8.03877,3.19892-13.209,8.72523-12.32592,14.06026a7.22014,7.22014,0,0,0,.29586,1.16158l.00044.00112A9.80461,9.80461,0,0,0,171.80855,311.2387Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"27.70 -2.30 447.60 509.60\" height=\"20\" width=\"20\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003esvg {enable-background:new 0 0 504 504}\u003c/style\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.st0{fill:#fff}\u003c/style\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M401.3 371.7c-1.7-12.3-6.9-17.7-11.5-22.6-4.3-4.5-8.3-8.8-7-16.6 1.2-7.2 7-11.7 16.4-12.9-5.7-38.6-14.1-87.4-24.9-129-5.4-20.8-13.9-35.2-25.3-44.8 2.1-1.1 4.1-2.1 6.1-3.2 2.7-1.4 5.3-2.8 7.7-4.2 25.2-14.1 29.3-20.9 30.2-24.8.8-3.3-.3-5.5-1.3-6.8-2.4-3-7-4.4-14.4-4.4-8.3 0-19.5 1.7-31.2 4.2-.1 2.1-.3 4.3-.6 6.7 12-2.6 23.5-4.5 31.7-4.5 7.5 0 9.2 1.6 9.5 1.9.1.1.3.4.1 1.4-.3 1.5-3.3 7.3-27.1 20.7-6.8 3.8-14.9 8-24 12.4l-.1.1h-.2c-10.5 5.1-22.4 10.5-35.2 16.1-7.6 3.3-15.2 6.5-22.6 9.5 3.6-4.1 6.7-7.8 9-10.6 4.5-5.4 3.8-13.5-1.7-18-.4-.3-.7-.6-1.1-.8 10.5-2.7 23.4-3.4 33.2-3.4 9 0 15.4.5 15.4.5 2.8-3.9 19.1-59.6-9-59.6-24.2 0-40 47.3-44 60.7-4.5-1-9.4.5-12.5 4.3-14.8 17.8-34.4 38.7-39.9 41.5-.8.3-1.4.6-1.8.7-4.1-3.4-10.2-4-15-.9-4.2 2.6-6.3 7.3-5.9 11.9-1.6.4-3 .6-3.9.8-2.1.2-5.3.5-9.4.8l-.7-.7c-4-3.3-9.4-3.8-13.8-1.6-2.4 0-11.1-.6-32.9-9.4-21.4-8.6-32-11.1-37.4-11.6 4.4-1.9 7.3-3.1 7.3-3.1s-15-44.1-35.2-44.1c-2.6 0-5.3.7-8.1 2.4-24.2 14.6 9.6 59.1 9.6 59.1 3.9-2.7 8.1-5.2 12.3-7.4-1.2 2.4-1.7 5.2-1.2 8 1 5.4 5.2 9.3 10.2 10.3-45.4-1.5-53.4-7.6-54.8-9.6-.3-.5-.5-.9-.1-1.8 1.7-4.3 8.6-8.9 17.5-13.1-1-1.8-1.9-3.8-2.8-5.8-9.8 4.7-18.3 10.3-20.7 16.6-1.1 2.7-.8 5.3.8 7.7 1.5 2.2 5.3 7.7 33.2 10.7 2.1.2 4.3.4 6.7.6-11.8 24.4-6.7 51.4-2.3 73.7 4.7 24.2 19.6 63.7 31.8 93.4 5.7 13.9 10.7 25.7 13.8 32.8 36.1 3.2 82.4 5.1 132.9 5.1 59.7 0 113.6-2.7 151.6-7-2.4-9.2-6.2-25.2-7.2-31.2 0-.3-.1-.8-.2-1.1zm-98.6-251.5c0-.5 0-1.2.1-2 .1-1.7.5-4.2 1.2-7.1.8-2.9 2-6.2 4.1-9.6 1.1-1.7 2.4-3.4 4.1-4.8.6-.6 1.4-1.1 2.1-1.5.5-.3 1.1-.6 1.6-.8.9-.4 1.8-.6 2.7-.8.6-.1 1.3-.1 1.9-.2.6 0 1.3 0 1.9.1.6.1 1.2.2 1.8.4l.3.1.6.2.3.1.1.1h.1l.3.1h.2c.1 0 1.6 1 2 1.6l.4.5.3.5c.2.3.3.6.4.9 0 .1.1.1.1.2s0 .1.1.2c.4 1.3.4 2.5.4 3.6-.1 1.1-.3 2.1-.5 3.1-.2.9-.5 1.8-.9 2.6-.6 1.7-1.4 3.1-2.1 4.4-1.4 2.6-2.9 4.6-4 6-1.1 1.4-1.8 2.1-1.8 2.1s.2-1 .6-2.6c.4-1.7 1-4 1.7-6.7.3-1.4.6-2.9.9-4.4.3-1.5.4-3.1.4-4.5 0-.2 0-.4-.1-.6-.1-.4-.2-.8-.3-1 0-.1-.1-.1-.1-.2l-.3-.1h-.2l-.6-.2c-.3-.1-.6-.1-.9-.2h-.1c-.4-.1-.7 0-1-.1-.3 0-.6.1-.9.1-.9.2-1.9.5-2.8 1.1l-.9.6c-.3.2-.6.5-.9.7-.6.5-1.2 1.1-1.7 1.7-.3.3-.5.6-.8.9-.5.6-1 1.3-1.5 1.9-1.4 2-2.7 4-3.8 5.8-1.1 1.8-2 3.5-2.7 4.8-.2.4-.5.9-.7 1.2-.8 1.5-1.3 2.4-1.3 2.4s.2-.2.2-.6zm-87.5 72.9c.2-.1.3-.2.5-.3.5-.2 1-.3 1.5-.3.4 0 .9.1 1.3.2s.8.4 1.1.6l3.6 3 4.5-1.3c1-.3 2-.7 3.1-1.1l.2-.1.2-.1c1.4-.7 3.2-2 5.2-3.7 11.1-9.3 30-31.1 37.5-40.1.7-.9 1.8-1.4 2.9-1.4.6 0 1.5.2 2.4.9 1.6 1.3 1.8 3.7.5 5.3-5.1 6.2-10.1 11.9-14.8 17.1-6.4 7.2-12.3 13.3-17.4 18.1-.5.4-.9.9-1.3 1.3-.9.8-1.7 1.6-2.6 2.3l-2.4 2.1c-1.9 1.6-3.6 2.9-5 3.8-.9.6-1.6 1-2.3 1.3-.4.2-.8.4-1.3.5-1.3.5-2.5.9-3.7 1.2-1.6.4-3.1.6-4.6.6-.9 0-1.8-.1-2.7-.2-.9-.1-1.7-.4-2.5-.7-.4-.2-.8-.3-1.2-.5-.4-.2-.7-.4-1-.6-1.9-1.2-2.8-2.5-3-2.9-.1-.2-.3-.4-.3-.7-.2-.5-.3-1-.2-1.4 0-1 .7-2.2 1.8-2.9zm55.4 135.3c-4.1 1.8-10.1 2.6-20.1 2.6h-.5c.2 2 .4 4.3.6 7.1 0 .5.1 1 .1 1.5.1 5.7-2.1 9.1-3.9 10.9-2.5 2.5-5.9 3.9-9.8 3.9-1.8 0-3.7-.3-5.1-.8-1.2-.4-2.2-1.1-3.1-1.9-1.9 3.6-4.9 5-6.7 5.5-1.5.4-3 .7-4.4.7-7.3 0-12.8-5.4-15.3-14.9l-2.1 1.2c-2.6 1.4-5.8 2.2-9.2 2.2-6.4 0-12.3-2.5-16-6.7-3-3.5-4.3-7.8-3.7-12.5 1.9-14.2 22.2-21.4 24.5-22.2l3.7-1.3c-.1-.4-.2-.7-.3-1.1 0-.2-.1-.5-.1-.7v-.9c0-.2 0-.3.1-.5v-.2c0-.2.1-.5.2-.7.1-.2.1-.5.2-.7 0-.1.1-.1.1-.2.1-.2.1-.3.2-.5 0-.1.1-.2.1-.2.1-.2.2-.3.3-.5 0-.1.1-.1.1-.2.1-.2.3-.5.4-.7.2-.2.3-.4.5-.7 0-.1.1-.1.1-.2.1-.2.3-.3.4-.5l.2-.2.5-.5.1-.1c.4-.4.9-.9 1.4-1.3.1-.1.1-.1.2-.1.2-.2.4-.3.6-.5l.2-.2c.2-.2.5-.3.7-.5.1 0 .1-.1.2-.1l.9-.6c.4-.2.7-.4 1.1-.6.1 0 .1-.1.2-.1.8-.4 1.6-.8 2.4-1.1.1 0 .2-.1.3-.1.4-.2.9-.3 1.3-.5s.9-.3 1.3-.4c.1 0 .2-.1.3-.1.5-.1.9-.3 1.4-.4.5-.1.9-.2 1.4-.3.1 0 .2-.1.4-.1.5-.1 1-.2 1.4-.3.5-.1 1.1-.2 1.6-.2.6-.1 1.1-.1 1.7-.2h.5c.4 0 .7 0 1.1-.1h3.9c.3 0 .6.1.9.1.4 0 .8.1 1.2.2.2 0 .5.1.7.1.3.1.6.1.8.2.2 0 .3.1.5.1.3.1.6.1.9.2.1 0 .3.1.4.1l.9.3c.1 0 .2.1.3.1 1.8.6 3.4 1.4 4.6 2.4.3.2.5.4.7.6l.8.8.3.3c.1.1.2.2.2.3.1.2.2.3.3.5.1.1.1.2.2.3h4.5c10.3.1 18.8 1.5 25.3 4.1 6.5 2.7 10.5 6.5 11.2 10.9 1.6 8.8-2.7 16.4-11.3 20.2zM96.9 170.1c-1-1.2-2.3-3-3.8-5.1-1.5-2.1-3.2-4.6-5.1-7.1-.9-1.3-1.9-2.5-2.9-3.7-.4-.4-.8-.9-1.2-1.3-.4-.4-.8-.8-1.2-1.1-.3-.2-.5-.4-.8-.6-.2-.2-.5-.3-.7-.5l-.6-.3h-.2.2l-.3.1h-.2c-.3.1-.4.2-.6.3-.2.2-.4.6-.5 1.1-.3 1-.3 2.5-.2 3.8.1 1.4.3 2.7.5 4 .4 2.5.9 4.7 1.2 6.2.2.8.3 1.4.4 1.8 0 .1 0 .2.1.3 0 .2.1.4.1.4s-.2-.2-.4-.5c-.3-.3-.7-.8-1.2-1.4-.7-.9-1.6-2.2-2.6-3.8-.3-.5-.6-1.1-.9-1.7-.2-.4-.4-.8-.6-1.3-.4-.9-.8-1.9-1.1-2.9-.4-1.6-.9-3.4-.7-5.6.1-.8.3-1.7.6-2.6.1-.3.3-.6.5-.9.7-1.2 2-2.3 3.3-2.8l.2-.1.1-.1.4-.1.3-.1.3-.1c.1 0 .5-.1.7-.1h1.5c.4.1.7.1 1.1.2 1 .3 1.9.7 2.6 1.2.2.2.5.3.7.5.4.3.7.6 1 .9.5.4.9.8 1.3 1.2.7.7 1.3 1.5 1.8 2.2 1.1 1.5 2 3 2.9 4.5.8 1.5 1.5 3 2.1 4.4.4.9.7 1.8 1 2.6.2.5.4 1 .5 1.5.2.6.4 1.3.6 1.8.5 1.8.8 3.3 1.1 4.4.1.6.2 1 .2 1.4v.4c0 .4.1.6.1.6s-.6-.7-1.6-2zm2.9 19c-.2-1.3.3-2.3.6-2.8s1.1-1.3 2.4-1.6c.3-.1.5-.1.8-.1h.4c.3 0 .8 0 1.3.1.4 0 .9.1 1.4.2.9.1 2 .3 3.4.6.8.2 1.7.4 2.7.6.8.2 1.6.4 2.5.7.5.2 1.1.3 1.7.5l2.1.6c.6.2 1.3.4 1.9.6.3.1.6.2 1 .3.7.2 1.4.5 2.1.7 1.4.5 3 1 4.6 1.6l2.4.9 1.5.6c2.4.9 5 1.9 7.8 3 .8.3 1.5.6 2.3.9 1 .4 1.9.7 2.8 1.1 1.5.6 2.9 1.1 4.3 1.6.8.3 1.5.5 2.3.8 5.6 2 10.1 3.3 13.8 4.1.3.1.6.1.9.2 1.7.4 3.2.7 4.6.9.1 0 .3 0 .4.1 1.9.3 3.5.4 4.7.4h2.3l1.8-.9c.5-.3 1.1-.4 1.7-.4.3 0 .7 0 1.1.2.4.1.9.3 1.3.7.3.2.5.4.6.7.2.3.4.6.5.9 0 .1 0 .1.1.2.1.3.1.5.2.7v.5c0 .2 0 .4-.1.7-.1.2-.1.5-.3.8-.1.3-.3.5-.5.8l-.3.3c-.1.1-.2.3-.4.4-.1.1-.2.1-.3.2-.3.2-.7.5-1.2.7-.6.3-1.5.6-2.5.8-.5.1-1.1.2-1.8.2-.7.1-1.4.1-2.2.1-2.1 0-4.5-.2-7.2-.7-2.7-.4-5.7-1.1-8.9-2s-6.8-2-10.6-3.3c-3.8-1.3-7.9-2.9-12.3-4.6-5.3-2.1-9.8-3.8-13.6-5.2-.5-.2-.9-.3-1.4-.5-10.5-3.6-15.5-4.5-17.5-4.7h-.1l-.6-.1h-.9c-1.7 0-3.2-1.3-3.6-3.1zm-3.5 78.4c0-27.8 22.6-50.3 50.3-50.3s50.3 22.6 50.3 50.3c0 27.8-22.6 50.3-50.3 50.3s-50.3-22.5-50.3-50.3zm179.4 20.4c-27.8 0-50.3-22.6-50.3-50.3 0-27.8 22.6-50.3 50.3-50.3s50.3 22.6 50.3 50.3c0 27.7-22.6 50.3-50.3 50.3zM95.1 416.4c9.2 0 15.9-4.8 20.6-11.1.3-.4.5-.7.8-1.1-3.2-7.5-7.7-18.1-12.6-30.1-3.4-8.4-7-17.6-10.6-26.9-2.3 2-5 5-7.9 9.5-3.2 4.9-6.1 12.8-7.8 21.2-1.5 7.6-1.9 15.6-.6 22.4.6 2.8 1.4 5.4 2.7 7.7 3.1 5.6 8.2 8.4 15.4 8.4zm-46.3-27.3c0 3.5 7.6 6.8 21.1 9.7-1-7-.4-14.1.5-19.6-13.8 3-21.6 6.3-21.6 9.9zm398.7-9.1c-.2.6-.4 1.1-.7 1.7-1.7 3.9-4 7.3-7.1 10.2-6.1 5.8-11.5 9.2-16.2 10.5 26.4-3.7 42.1-8.3 42.1-13.3.1-3.2-6.4-6.3-18.1-9.1z\" class=\"st0\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M440.4 378.5c3.7-8.6 2.4-18.9-.7-26.9-5.7-14.8-17.9-25.3-29.6-25.6h-.4s-2.3-.3-5.3-.3c-6.4 0-14.2 1.4-15.3 7.8-.7 4.5 1.2 6.8 5.4 11.2 4.8 5 11.3 11.8 13.2 26.1.1 1 .3 2 .4 3 2.3 14.4 6.1 21.7 11.4 21.7 2.6 0 7.4-1.6 15.4-9.1 2.5-2.4 4.3-5 5.5-7.9zM102.9 137.8c-.4-10.9-.6-21.6-.1-24.8 1.4-6.5 41.8-52.7 68.4-58.1 2.2-.4 4.8-.7 7.8-.7 30 0 87.4 21.4 94.4 25.1.4.9.9 2.6 1.5 4.9-3.3 3.4-5.9 8.6-7.3 14.7-1.4 6.2-1.1 12 .4 16.4-30.3 13.2-105.7 41.7-162.3 26.4 1.2 1.8 2.4 3.7 3.5 5.8 4.3 7.5 7.4 14.8 9.1 19.2 23.4 3.7 75.1 4.5 156.2-32 1.5-4.8 3.9-11.7 7.1-19.1-1.5 1.4-3 2-4.2 1.8-3.3-.7-5.5-8.2-3.5-17.1 1.9-8.4 6.6-14.1 9.8-14.1.2 0 .4 0 .5.1 3.2.7 5.3 7.7 3.7 16.1 10.6-19.6 22.6-29.5 35.6-29.5 4.4 0 8.2 1 11.5 3 5.5-6.7 9-11.3 9-11.3-4.1.7-12.8 1.9-12.8 1.9 32.6-12 30-44.6 30-44.6 0 5.6-16.9 19.1-16.9 19.1.8-4.9-1.9-11.3-1.9-11.3.7 6.4-19.5 22.9-19.5 22.9 1.5-3 .4-8.3.4-8.3-1.1 6-10.1 8.3-10.1 8.3 5.6-6.8 16.1-42.4 8.3-44.6-7.9-2.3-18.8 23.3-18.8 23.3-.4-6-3.8-6-3.8-6C300.4 44 285.4 59 285.4 59c-1.1-3.8-7.1-5.6-7.1-5.6 1.4 3 .6 13.8-.2 21.6l-.2-.2c-3.2-3.2-67.4-27-99-27-3.4 0-6.5.3-9 .8-16.7 3.4-36.6 20.6-46.9 30.6C110.6 91 97.3 106.5 96.4 112c-.4 2.9-.4 10.2-.2 18.3 2.3 2 4.5 4.6 6.7 7.5zm41.8 312.1c-7.2 1.6-28.2 13.1-46.4 16.6-18.2 3.5-34 5.3-39.5 7.4-5.5 2-9.8 6.1 1 10.2s63.4 5.5 68.1 0c4.7-5.5-3.2-7.9-14.7-7.8-8.2.1-7.2-2.7-7.2-3.1 0 0 .5-3.6 13.1-5.3 12.6-1.7 68.1-7 67.1-12.9s-34.3-6.7-41.5-5.1z\" class=\"st0\"\u003e\u003c/path\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"108.7\" cy=\"493.7\" class=\"st0\" rx=\"10.9\" ry=\"3.2\" transform=\"rotate(-12.285 108.609 493.667)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"83.5\" cy=\"492.3\" class=\"st0\" rx=\"11.5\" ry=\"3.1\" transform=\"rotate(-4.542 83.463 492.308) scale(1.00004)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"63.3\" cy=\"489.8\" class=\"st0\" rx=\"7.7\" ry=\"2.4\" transform=\"rotate(-7.765 63.331 489.89)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"48.4\" cy=\"487.5\" class=\"st0\" rx=\"7.4\" ry=\"1.9\" transform=\"rotate(-8.27 48.382 487.623)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"45.1\" cy=\"483.3\" class=\"st0\" rx=\"7.4\" ry=\"1.9\" transform=\"rotate(-8.27 45.007 483.428)\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"44.2\" cy=\"478.5\" class=\"st0\" rx=\"6.4\" ry=\"1.7\" transform=\"rotate(-8.27 44.156 478.58)\"\u003e\u003c/ellipse\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M253.9 455.7c-12.5.6-40.7-.8-44.6 5.7-3.9 6.5 11.5 9 35.6 7s58.3-4.7 59.7-12.1c1.4-7.4-6.3-5.9-7.2-10.6-.8-4.7 8.6-4.7 10.4-11.7 1.8-7-12.7-6.1-25.6-6.1s-34.4 1.2-36.4 8 9.8 6.8 18.2 8.4c8.4 1.6 5.9 4.7 5.9 4.7-.2 4.2-3.5 6.1-16 6.7z\" class=\"st0\"\u003e\u003c/path\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"220.6\" cy=\"473.6\" class=\"st0\" rx=\"10.8\" ry=\"3.5\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"248.4\" cy=\"472.9\" class=\"st0\" rx=\"7.2\" ry=\"3.2\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"270.9\" cy=\"470.6\" class=\"st0\" rx=\"7.9\" ry=\"2.6\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"288.2\" cy=\"467.6\" class=\"st0\" rx=\"5.8\" ry=\"2.8\"\u003e\u003c/ellipse\u003e\u003cellipse xmlns=\"http://www.w3.org/2000/svg\" cx=\"303.2\" cy=\"464.5\" class=\"st0\" rx=\"5.8\" ry=\"2.7\"\u003e\u003c/ellipse\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M146.7 225.9c-10.8 0-20.6 4.1-28 10.8-.5.4-1 .9-1.4 1.4-7.5 7.5-12.2 17.9-12.2 29.4 0 4.3.7 8.5 1.9 12.4.4 1.3.9 2.6 1.4 3.8.5 1.2 1.1 2.5 1.8 3.6 1 1.8 2 3.5 3.2 5.1 7.6 10.2 19.7 16.7 33.4 16.7 23 0 41.6-18.6 41.6-41.6s-18.8-41.6-41.7-41.6zm-3.8 69.4c-3.6 0-6.9-1.5-9.3-3.8-.5-.5-.9-1-1.3-1.5-.3-.4-.5-.7-.7-1.1-.5-.8-.8-1.6-1.1-2.5-.1-.2-.1-.4-.2-.6-.3-1.1-.5-2.3-.5-3.6 0-7.2 5.9-13.1 13.1-13.1 5.9 0 10.9 3.9 12.5 9.2.4 1.2.6 2.5.6 3.9 0 7.2-5.8 13.1-13.1 13.1zM290 198.4c-2.5-.9-5.2-1.6-8-2-2.1-.3-4.2-.5-6.3-.5-9.3 0-18 3.1-24.9 8.3-3.2 2.4-6.1 5.2-8.5 8.5-1.2 1.6-2.3 3.3-3.2 5.1l-1.8 3.6c-.5 1.2-1 2.5-1.4 3.8-1.2 3.9-1.9 8.1-1.9 12.4 0 5 .9 9.9 2.5 14.3.2.6.5 1.3.7 1.9 1.1 2.5 2.3 4.9 3.8 7.1.4.6.8 1.1 1.2 1.6.8 1.1 1.7 2.1 2.5 3.1 1.3 1.5 2.8 2.9 4.3 4.1 7.2 5.9 16.4 9.5 26.5 9.5 23 0 41.6-18.6 41.6-41.6.2-18-11.2-33.3-27.1-39.2zm-14.8 65.1c-1.6.7-3.3 1-5.1 1-1.4 0-2.7-.2-3.9-.6-1.5-.5-3-1.2-4.2-2.2-.4-.3-.8-.7-1.2-1-.3-.3-.6-.6-.8-.9-.4-.5-.8-1.1-1.2-1.7-.3-.5-.6-1-.8-1.6-.3-.7-.5-1.4-.7-2.1-.2-1-.4-1.9-.4-3 0-.5 0-.9.1-1.3 0-.4.1-.9.2-1.3 1-4.7 4.4-8.5 9-9.9 1.2-.4 2.5-.6 3.9-.6 1.8 0 3.5.4 5.1 1 .8.3 1.5.7 2.2 1.2.4.2.7.5 1 .8 2.9 2.4 4.8 6.1 4.8 10.1 0 5.4-3.3 10.1-8 12.1zm-51 80.8c-.4-1-.7-2-.9-2.8-.9-3.1-1.6-6.3-2-8.7-1.1.4-2.2.8-3.3 1.3-3.7 1.8-7 3.8-10 5.7-.1 0-.1.1-.2.1.8 3.7 3.3 11.8 9.8 11.8.8 0 1.7-.1 2.6-.4 3-1 4-3.8 4-7zm8.9-13.6c-1.9 0-3.3.1-4.2.2-.6.1-1.1.2-1.7.3.4 2.3 1 5.5 1.9 8.5 1.1 3.8 2.7 7.3 4.8 8.1.6.2 1.7.4 2.9.4 3.3 0 7.7-1.5 7.6-8.5v-1.1c-.3-3.4-.5-5.8-.7-7.6-1.1 0-2.3-.1-3.3-.1-2.6-.1-5.2-.2-7.3-.2z\" class=\"st0\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M245.5 299.4s-1.2 14-20.9 16.9c-3.7.6-6.9.8-9.7.8-10.5 0-14.6-3.5-17.1-6.5 0 0-18.9 6.4-20.4 17.2-1.1 8.1 6.7 12.3 13.6 12.3 2.3 0 4.5-.5 6.3-1.4 6.9-3.8 17.2-12.1 30.9-13.9 1.2-.2 3-.2 5-.2 4.7 0 11.1.3 17.3.3 7.1 0 13.9-.4 17.6-2.1 8.5-3.8 8.5-10.3 7.9-13.5-.6-3.6-9.2-9.7-30.5-9.9z\" class=\"st0\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "jaeger-3.1.2" + }, + "name": "jaeger-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Tracing", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/k8gb/v0.13.0/v1.0.0/components/DNSEndpoint.json b/server/meshmodel/k8gb/v0.13.0/v1.0.0/components/DNSEndpoint.json new file mode 100644 index 00000000000..a9a8ef00ee2 --- /dev/null +++ b/server/meshmodel/k8gb/v0.13.0/v1.0.0/components/DNSEndpoint.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DNSEndpoint", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"DNSEndpointSpec defines the desired state of DNSEndpoint\",\n \"properties\": {\n \"endpoints\": {\n \"items\": {\n \"description\": \"Endpoint is a high-level way of a connection between a service and an IP\",\n \"properties\": {\n \"dnsName\": {\n \"description\": \"The hostname of the DNS record\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels stores labels defined for the Endpoint\",\n \"type\": \"object\"\n },\n \"providerSpecific\": {\n \"description\": \"ProviderSpecific stores provider specific config\",\n \"items\": {\n \"description\": \"ProviderSpecificProperty holds the name and value of a configuration which is specific to individual DNS providers\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"recordTTL\": {\n \"description\": \"TTL for the record\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"recordType\": {\n \"description\": \"RecordType type of record, e.g. CNAME, A, SRV, TXT etc\",\n \"type\": \"string\"\n },\n \"setIdentifier\": {\n \"description\": \"Identifier to distinguish multiple records with the same name and type (e.g. Route53 records with routing policies other than 'simple')\",\n \"type\": \"string\"\n },\n \"targets\": {\n \"description\": \"The targets the DNS record points to\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"DNS Endpoint\",\n \"type\": \"object\"\n}", + "version": "externaldns.k8s.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "DNS Endpoint", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/k8gb-io/k8gb/master/chart/k8gb/crd" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "K8GB", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#be0028", + "secondaryColor": "#FF456D\n", + "shape": "circle", + "source_uri": "git://github.com/k8gb-io/k8gb/master/chart/k8gb/crd", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.1 101.6\" style=\"enable-background:new 0 0 104.1 101.6\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m50.8.3-39.5 19c-.8.4-1.4 1.1-1.6 2L.1 63.9c-.2.8 0 1.7.6 2.4L28 100.5c.5.7 1.4 1.1 2.2 1.1H74c.9 0 1.7-.4 2.2-1.1l27.3-34.2c.5-.7.7-1.6.6-2.4l-9.7-42.7c-.2-.9-.8-1.6-1.6-2L53.4.2c-.9-.3-1.8-.3-2.6.1z\" style=\"fill:#fff\"\u003e\u003c/path\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"a\" gradientUnits=\"userSpaceOnUse\" x1=\"-.001\" y1=\"50.811\" x2=\"104.073\" y2=\"50.811\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" style=\"stop-color:#f52d28\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".25\" style=\"stop-color:#dc0032\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".5\" style=\"stop-color:#be0028\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".75\" style=\"stop-color:#aa052d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" style=\"stop-color:#960528\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M53.6 39.9c-.1-.1-.1-.2-.1-.3V24.3c0-.1.1-.3.2-.4.1-.1.2-.1.3-.1 4.9 1.1 9.3 6.3 12 14v.4c-.1.1-.2.2-.3.2-3.8 1-7.8 1.5-11.7 1.6-.1 0-.3 0-.4-.1zm-3.5 3c-4.2-.1-8.5-.7-12.6-1.8h-.1c-.1 0-.2 0-.2.1-.1.1-.2.2-.2.3-.7 3.1-1.2 6.2-1.3 9.3 0 .2.2.5.4.5H50c.3 0 .5-.2.5-.5v-7.5c.1-.2-.1-.4-.4-.4zm0-19H50c-4.9 1.1-9.3 6.3-12 13.9-.1.1-.1.3 0 .4.1.1.2.2.3.2 3.9 1 7.8 1.5 11.8 1.6.3 0 .5-.2.5-.5V24.3c0-.2-.2-.4-.5-.4zm0 30.3H36.2c-.1 0-.2.1-.3.1-.1.1-.1.2-.1.3.1 3.1.5 6.2 1.3 9.3 0 .1.1.2.2.3.1 0 .2.1.2.1h.1c4.1-1.1 8.3-1.6 12.6-1.8.3 0 .5-.2.5-.5v-7.5c-.1-.1-.3-.3-.6-.3zM35.2 68.5c-.1-.2-.2-.3-.4-.3h-.2c-1.7.6-3.4 1.4-5 2.3-.1.1-.2.2-.2.3 0 .1 0 .3.1.4 2.8 3.4 6.4 6.1 10.4 8h.2c.1 0 .3-.1.4-.2.1-.2.1-.4 0-.6-2.3-2.9-4.1-6.3-5.3-9.9zm-2.4-17.6c.1-3.5.6-6.9 1.4-10.3.1-.2-.1-.5-.3-.5-2.1-.7-4.1-1.6-6-2.8-.1 0-.2-.1-.2-.1-.2 0-.3.1-.4.2-2.5 4-4 8.6-4.3 13.4 0 .1 0 .2.1.3.1.1.2.2.3.2h8.9c.3 0 .5-.2.5-.4zm17.3 14.6c-4 .1-7.9.7-11.7 1.6-.1 0-.2.1-.3.2v.4c2.6 7.6 7.1 12.8 12 13.9h.1c.1 0 .2 0 .3-.1.1-.1.2-.2.2-.4V66c0-.1-.1-.2-.1-.3-.2-.2-.3-.2-.5-.2zm15.6 1.6c-3.8-1-7.7-1.5-11.7-1.6-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3v15.2c0 .1.1.3.2.4.1.1.2.1.3.1h.1c4.9-1.1 9.3-6.3 11.9-13.9 0-.2-.1-.5-.4-.6zm4.2-26.5c.8 3.4 1.3 6.8 1.4 10.3 0 .3.2.5.5.5h8.9c.1 0 .3-.1.3-.2.1-.1.1-.2.1-.3-.3-4.7-1.8-9.3-4.3-13.4-.1-.1-.2-.2-.4-.2-.1 0-.2 0-.2.1-1.9 1.1-3.9 2-6 2.8-.3-.1-.4.2-.3.4zm25.4 21.3c.1.6 0 1.2-.4 1.6l-23 28.8c-.4.5-.9.7-1.5.7H33.6c-.6 0-1.1-.3-1.5-.7l-23-28.8c-.4-.5-.5-1-.4-1.6L17 26c.1-.6.5-1 1-1.3l33.2-16c.5-.3 1.1-.3 1.6 0l33.2 16c.5.3.9.7 1 1.3l8.3 35.9zM84 52.8c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.4 32-32zm19.4 13.5-27.2 34.2c-.5.7-1.4 1.1-2.2 1.1H30.2c-.9 0-1.7-.4-2.2-1.1L.6 66.3c-.5-.7-.8-1.6-.6-2.4l9.7-42.7c.2-.9.8-1.6 1.6-2L50.8.2c.8-.4 1.7-.4 2.5 0l39.4 19c.8.4 1.4 1.1 1.6 2l9.7 42.7c.2.8 0 1.7-.6 2.4zm-4.8-5.2-8.2-35.9c-.4-1.6-1.4-2.9-2.9-3.6l-33.2-16c-1.5-.7-3.2-.7-4.6 0l-33.2 16c-1.5.7-2.5 2-2.9 3.6l-8.2 36c-.4 1.6 0 3.3 1 4.5l23 28.8c1 1.3 2.6 2 4.2 2h36.8c1.6 0 3.2-.7 4.2-2l23-28.8c1-1.3 1.4-3 1-4.6zm-30.7-6.9h-14c-.3 0-.5.2-.5.5v7.5c0 .3.2.5.5.5 4.2.1 8.5.7 12.6 1.7h.1c.1 0 .2 0 .2-.1.1-.1.2-.2.2-.3.7-3.1 1.2-6.2 1.3-9.3 0-.1 0-.2-.1-.3-.1-.2-.2-.2-.3-.2zm6.7-19.5c0-.1 0-.3-.1-.4-2.8-3.4-6.4-6.2-10.4-8h-.2c-.1 0-.3.1-.4.2-.1.2-.1.4 0 .6 2.3 3 4.1 6.4 5.3 10 .1.2.2.3.4.3h.2c1.7-.6 3.4-1.4 5-2.3.2-.1.2-.3.2-.4zm6 19.5h-8.9c-.3 0-.5.2-.5.5-.1 3.5-.6 6.9-1.4 10.3-.1.2.1.5.3.6 2.1.7 4.1 1.6 6 2.8.1 0 .1.1.2.1.2 0 .3-.1.4-.2 2.5-4 4-8.6 4.3-13.4 0-.1 0-.3-.1-.3 0-.3-.2-.4-.3-.4z\" style=\"fill:url(#a)\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.07 101.62\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.a{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"a\" d=\"M53.62,39.89a.44.44,0,0,1-.14-.33V24.33a.47.47,0,0,1,.18-.36.42.42,0,0,1,.28-.1h.11C58.91,25,63.38,30.2,66,37.82a.48.48,0,0,1,0,.37.44.44,0,0,1-.29.22A53.88,53.88,0,0,1,54,40h0A.44.44,0,0,1,53.62,39.89Zm-3.48,3a57.14,57.14,0,0,1-12.57-1.75l-.11,0a.4.4,0,0,0-.24.07.45.45,0,0,0-.21.29,47.15,47.15,0,0,0-1.27,9.32.45.45,0,0,0,.46.48H50.13a.47.47,0,0,0,.46-.46V43.38A.46.46,0,0,0,50.14,42.92Zm0-19H50c-4.87,1.11-9.34,6.32-12,13.93a.47.47,0,0,0,0,.37.44.44,0,0,0,.29.23A54.06,54.06,0,0,0,50.11,40h0a.46.46,0,0,0,.46-.46V24.33a.45.45,0,0,0-.46-.46Zm0,30.33H36.2a.48.48,0,0,0-.34.14.46.46,0,0,0-.12.34A47.15,47.15,0,0,0,37,64a.45.45,0,0,0,.21.29.48.48,0,0,0,.24.06h.11a56.55,56.55,0,0,1,12.57-1.75.46.46,0,0,0,.45-.46V54.66A.47.47,0,0,0,50.13,54.2ZM35.24,68.54a.48.48,0,0,0-.44-.32.45.45,0,0,0-.16,0,30.39,30.39,0,0,0-5,2.28.46.46,0,0,0-.23.31.47.47,0,0,0,.1.38,29.5,29.5,0,0,0,10.41,8,.43.43,0,0,0,.19,0,.46.46,0,0,0,.37-.18.47.47,0,0,0,0-.57A31.66,31.66,0,0,1,35.24,68.54Zm-2.4-17.68A50.87,50.87,0,0,1,34.2,40.6a.46.46,0,0,0-.29-.55,33.58,33.58,0,0,1-6-2.75.55.55,0,0,0-.24-.07.44.44,0,0,0-.39.22A29,29,0,0,0,23,50.82a.47.47,0,0,0,.12.34.45.45,0,0,0,.34.15h8.92A.47.47,0,0,0,32.84,50.86ZM50.13,65.48h0A54,54,0,0,0,38.4,67.1a.46.46,0,0,0-.29.22.48.48,0,0,0,0,.37c2.61,7.62,7.08,12.83,12,13.94h.1a.53.53,0,0,0,.29-.1.46.46,0,0,0,.17-.36V66a.48.48,0,0,0-.14-.34A.48.48,0,0,0,50.13,65.48Zm15.54,1.61A54,54,0,0,0,54,65.48h0a.48.48,0,0,0-.32.13.48.48,0,0,0-.14.34V81.18a.47.47,0,0,0,.18.36.48.48,0,0,0,.28.1h.11c4.86-1.11,9.33-6.32,11.94-13.94a.47.47,0,0,0-.32-.6Zm4.2-26.49a50.16,50.16,0,0,1,1.36,10.26.47.47,0,0,0,.47.45h8.91a.45.45,0,0,0,.34-.15.44.44,0,0,0,.12-.34,29,29,0,0,0-4.29-13.37.44.44,0,0,0-.39-.22.39.39,0,0,0-.23.07,34.24,34.24,0,0,1-6,2.75A.47.47,0,0,0,69.87,40.6ZM95.26,61.94a1.91,1.91,0,0,1-.37,1.61l-23,28.81a1.88,1.88,0,0,1-1.49.71H33.62a1.85,1.85,0,0,1-1.49-.71l-23-28.81a1.91,1.91,0,0,1-.37-1.61L17,26.05a1.9,1.9,0,0,1,1-1.29l33.2-16a1.82,1.82,0,0,1,1.64,0L86,24.74a1.88,1.88,0,0,1,1,1.29ZM84,52.75a32,32,0,1,0-32,32A32,32,0,0,0,84,52.75Zm19.41,13.56L76.16,100.54a2.89,2.89,0,0,1-2.25,1.08H30.16a2.87,2.87,0,0,1-2.24-1.08L.63,66.31a2.85,2.85,0,0,1-.56-2.42L9.79,21.22a2.86,2.86,0,0,1,1.55-1.95L50.8.28a2.93,2.93,0,0,1,2.49,0l39.42,19a2.9,2.9,0,0,1,1.56,1.95L104,63.89A2.85,2.85,0,0,1,103.45,66.31Zm-4.81-5.16-8.2-35.9a5.33,5.33,0,0,0-2.89-3.63l-33.2-16a5.32,5.32,0,0,0-4.64,0l-33.18,16a5.33,5.33,0,0,0-2.89,3.63L5.44,61.15a5.31,5.31,0,0,0,1,4.53l23,28.81a5.3,5.3,0,0,0,4.19,2H70.44a5.32,5.32,0,0,0,4.2-2l23-28.81A5.35,5.35,0,0,0,98.64,61.15ZM67.87,54.2H53.94a.47.47,0,0,0-.46.46v7.47a.46.46,0,0,0,.45.46A56.39,56.39,0,0,1,66.5,64.34h.12a.46.46,0,0,0,.23-.06.49.49,0,0,0,.22-.29,47.91,47.91,0,0,0,1.27-9.32.51.51,0,0,0-.13-.34A.48.48,0,0,0,67.87,54.2Zm6.75-19.54a.45.45,0,0,0-.1-.37,29.27,29.27,0,0,0-10.41-8,.41.41,0,0,0-.19,0,.44.44,0,0,0-.36.18.47.47,0,0,0,0,.57,31.82,31.82,0,0,1,5.28,10,.43.43,0,0,0,.43.31.41.41,0,0,0,.16,0,30,30,0,0,0,5-2.28A.5.5,0,0,0,74.62,34.66Zm6,19.54H71.7a.47.47,0,0,0-.47.45,50.26,50.26,0,0,1-1.36,10.26.47.47,0,0,0,.3.55,33.86,33.86,0,0,1,6,2.75.46.46,0,0,0,.23.06.44.44,0,0,0,.39-.21,29,29,0,0,0,4.29-13.37.42.42,0,0,0-.12-.34A.45.45,0,0,0,80.61,54.2Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.13.0" + }, + "name": "k8gb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Coordination \u0026 Service Discovery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#be0028", + "secondaryColor": "#FF456D\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.1 101.6\" style=\"enable-background:new 0 0 104.1 101.6\" xml:space=\"preserve\"\u003e\u003cpath d=\"m50.8.3-39.5 19c-.8.4-1.4 1.1-1.6 2L.1 63.9c-.2.8 0 1.7.6 2.4L28 100.5c.5.7 1.4 1.1 2.2 1.1H74c.9 0 1.7-.4 2.2-1.1l27.3-34.2c.5-.7.7-1.6.6-2.4l-9.7-42.7c-.2-.9-.8-1.6-1.6-2L53.4.2c-.9-.3-1.8-.3-2.6.1z\" style=\"fill:#fff\"/\u003e\u003clinearGradient id=\"a\" gradientUnits=\"userSpaceOnUse\" x1=\"-.001\" y1=\"50.811\" x2=\"104.073\" y2=\"50.811\"\u003e\u003cstop offset=\"0\" style=\"stop-color:#f52d28\"/\u003e\u003cstop offset=\".25\" style=\"stop-color:#dc0032\"/\u003e\u003cstop offset=\".5\" style=\"stop-color:#be0028\"/\u003e\u003cstop offset=\".75\" style=\"stop-color:#aa052d\"/\u003e\u003cstop offset=\"1\" style=\"stop-color:#960528\"/\u003e\u003c/linearGradient\u003e\u003cpath d=\"M53.6 39.9c-.1-.1-.1-.2-.1-.3V24.3c0-.1.1-.3.2-.4.1-.1.2-.1.3-.1 4.9 1.1 9.3 6.3 12 14v.4c-.1.1-.2.2-.3.2-3.8 1-7.8 1.5-11.7 1.6-.1 0-.3 0-.4-.1zm-3.5 3c-4.2-.1-8.5-.7-12.6-1.8h-.1c-.1 0-.2 0-.2.1-.1.1-.2.2-.2.3-.7 3.1-1.2 6.2-1.3 9.3 0 .2.2.5.4.5H50c.3 0 .5-.2.5-.5v-7.5c.1-.2-.1-.4-.4-.4zm0-19H50c-4.9 1.1-9.3 6.3-12 13.9-.1.1-.1.3 0 .4.1.1.2.2.3.2 3.9 1 7.8 1.5 11.8 1.6.3 0 .5-.2.5-.5V24.3c0-.2-.2-.4-.5-.4zm0 30.3H36.2c-.1 0-.2.1-.3.1-.1.1-.1.2-.1.3.1 3.1.5 6.2 1.3 9.3 0 .1.1.2.2.3.1 0 .2.1.2.1h.1c4.1-1.1 8.3-1.6 12.6-1.8.3 0 .5-.2.5-.5v-7.5c-.1-.1-.3-.3-.6-.3zM35.2 68.5c-.1-.2-.2-.3-.4-.3h-.2c-1.7.6-3.4 1.4-5 2.3-.1.1-.2.2-.2.3 0 .1 0 .3.1.4 2.8 3.4 6.4 6.1 10.4 8h.2c.1 0 .3-.1.4-.2.1-.2.1-.4 0-.6-2.3-2.9-4.1-6.3-5.3-9.9zm-2.4-17.6c.1-3.5.6-6.9 1.4-10.3.1-.2-.1-.5-.3-.5-2.1-.7-4.1-1.6-6-2.8-.1 0-.2-.1-.2-.1-.2 0-.3.1-.4.2-2.5 4-4 8.6-4.3 13.4 0 .1 0 .2.1.3.1.1.2.2.3.2h8.9c.3 0 .5-.2.5-.4zm17.3 14.6c-4 .1-7.9.7-11.7 1.6-.1 0-.2.1-.3.2v.4c2.6 7.6 7.1 12.8 12 13.9h.1c.1 0 .2 0 .3-.1.1-.1.2-.2.2-.4V66c0-.1-.1-.2-.1-.3-.2-.2-.3-.2-.5-.2zm15.6 1.6c-3.8-1-7.7-1.5-11.7-1.6-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3v15.2c0 .1.1.3.2.4.1.1.2.1.3.1h.1c4.9-1.1 9.3-6.3 11.9-13.9 0-.2-.1-.5-.4-.6zm4.2-26.5c.8 3.4 1.3 6.8 1.4 10.3 0 .3.2.5.5.5h8.9c.1 0 .3-.1.3-.2.1-.1.1-.2.1-.3-.3-4.7-1.8-9.3-4.3-13.4-.1-.1-.2-.2-.4-.2-.1 0-.2 0-.2.1-1.9 1.1-3.9 2-6 2.8-.3-.1-.4.2-.3.4zm25.4 21.3c.1.6 0 1.2-.4 1.6l-23 28.8c-.4.5-.9.7-1.5.7H33.6c-.6 0-1.1-.3-1.5-.7l-23-28.8c-.4-.5-.5-1-.4-1.6L17 26c.1-.6.5-1 1-1.3l33.2-16c.5-.3 1.1-.3 1.6 0l33.2 16c.5.3.9.7 1 1.3l8.3 35.9zM84 52.8c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.4 32-32zm19.4 13.5-27.2 34.2c-.5.7-1.4 1.1-2.2 1.1H30.2c-.9 0-1.7-.4-2.2-1.1L.6 66.3c-.5-.7-.8-1.6-.6-2.4l9.7-42.7c.2-.9.8-1.6 1.6-2L50.8.2c.8-.4 1.7-.4 2.5 0l39.4 19c.8.4 1.4 1.1 1.6 2l9.7 42.7c.2.8 0 1.7-.6 2.4zm-4.8-5.2-8.2-35.9c-.4-1.6-1.4-2.9-2.9-3.6l-33.2-16c-1.5-.7-3.2-.7-4.6 0l-33.2 16c-1.5.7-2.5 2-2.9 3.6l-8.2 36c-.4 1.6 0 3.3 1 4.5l23 28.8c1 1.3 2.6 2 4.2 2h36.8c1.6 0 3.2-.7 4.2-2l23-28.8c1-1.3 1.4-3 1-4.6zm-30.7-6.9h-14c-.3 0-.5.2-.5.5v7.5c0 .3.2.5.5.5 4.2.1 8.5.7 12.6 1.7h.1c.1 0 .2 0 .2-.1.1-.1.2-.2.2-.3.7-3.1 1.2-6.2 1.3-9.3 0-.1 0-.2-.1-.3-.1-.2-.2-.2-.3-.2zm6.7-19.5c0-.1 0-.3-.1-.4-2.8-3.4-6.4-6.2-10.4-8h-.2c-.1 0-.3.1-.4.2-.1.2-.1.4 0 .6 2.3 3 4.1 6.4 5.3 10 .1.2.2.3.4.3h.2c1.7-.6 3.4-1.4 5-2.3.2-.1.2-.3.2-.4zm6 19.5h-8.9c-.3 0-.5.2-.5.5-.1 3.5-.6 6.9-1.4 10.3-.1.2.1.5.3.6 2.1.7 4.1 1.6 6 2.8.1 0 .1.1.2.1.2 0 .3-.1.4-.2 2.5-4 4-8.6 4.3-13.4 0-.1 0-.3-.1-.3 0-.3-.2-.4-.3-.4z\" style=\"fill:url(#a)\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.07 101.62\"\u003e\u003cdefs\u003e\u003cstyle\u003e.a{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"a\" d=\"M53.62,39.89a.44.44,0,0,1-.14-.33V24.33a.47.47,0,0,1,.18-.36.42.42,0,0,1,.28-.1h.11C58.91,25,63.38,30.2,66,37.82a.48.48,0,0,1,0,.37.44.44,0,0,1-.29.22A53.88,53.88,0,0,1,54,40h0A.44.44,0,0,1,53.62,39.89Zm-3.48,3a57.14,57.14,0,0,1-12.57-1.75l-.11,0a.4.4,0,0,0-.24.07.45.45,0,0,0-.21.29,47.15,47.15,0,0,0-1.27,9.32.45.45,0,0,0,.46.48H50.13a.47.47,0,0,0,.46-.46V43.38A.46.46,0,0,0,50.14,42.92Zm0-19H50c-4.87,1.11-9.34,6.32-12,13.93a.47.47,0,0,0,0,.37.44.44,0,0,0,.29.23A54.06,54.06,0,0,0,50.11,40h0a.46.46,0,0,0,.46-.46V24.33a.45.45,0,0,0-.46-.46Zm0,30.33H36.2a.48.48,0,0,0-.34.14.46.46,0,0,0-.12.34A47.15,47.15,0,0,0,37,64a.45.45,0,0,0,.21.29.48.48,0,0,0,.24.06h.11a56.55,56.55,0,0,1,12.57-1.75.46.46,0,0,0,.45-.46V54.66A.47.47,0,0,0,50.13,54.2ZM35.24,68.54a.48.48,0,0,0-.44-.32.45.45,0,0,0-.16,0,30.39,30.39,0,0,0-5,2.28.46.46,0,0,0-.23.31.47.47,0,0,0,.1.38,29.5,29.5,0,0,0,10.41,8,.43.43,0,0,0,.19,0,.46.46,0,0,0,.37-.18.47.47,0,0,0,0-.57A31.66,31.66,0,0,1,35.24,68.54Zm-2.4-17.68A50.87,50.87,0,0,1,34.2,40.6a.46.46,0,0,0-.29-.55,33.58,33.58,0,0,1-6-2.75.55.55,0,0,0-.24-.07.44.44,0,0,0-.39.22A29,29,0,0,0,23,50.82a.47.47,0,0,0,.12.34.45.45,0,0,0,.34.15h8.92A.47.47,0,0,0,32.84,50.86ZM50.13,65.48h0A54,54,0,0,0,38.4,67.1a.46.46,0,0,0-.29.22.48.48,0,0,0,0,.37c2.61,7.62,7.08,12.83,12,13.94h.1a.53.53,0,0,0,.29-.1.46.46,0,0,0,.17-.36V66a.48.48,0,0,0-.14-.34A.48.48,0,0,0,50.13,65.48Zm15.54,1.61A54,54,0,0,0,54,65.48h0a.48.48,0,0,0-.32.13.48.48,0,0,0-.14.34V81.18a.47.47,0,0,0,.18.36.48.48,0,0,0,.28.1h.11c4.86-1.11,9.33-6.32,11.94-13.94a.47.47,0,0,0-.32-.6Zm4.2-26.49a50.16,50.16,0,0,1,1.36,10.26.47.47,0,0,0,.47.45h8.91a.45.45,0,0,0,.34-.15.44.44,0,0,0,.12-.34,29,29,0,0,0-4.29-13.37.44.44,0,0,0-.39-.22.39.39,0,0,0-.23.07,34.24,34.24,0,0,1-6,2.75A.47.47,0,0,0,69.87,40.6ZM95.26,61.94a1.91,1.91,0,0,1-.37,1.61l-23,28.81a1.88,1.88,0,0,1-1.49.71H33.62a1.85,1.85,0,0,1-1.49-.71l-23-28.81a1.91,1.91,0,0,1-.37-1.61L17,26.05a1.9,1.9,0,0,1,1-1.29l33.2-16a1.82,1.82,0,0,1,1.64,0L86,24.74a1.88,1.88,0,0,1,1,1.29ZM84,52.75a32,32,0,1,0-32,32A32,32,0,0,0,84,52.75Zm19.41,13.56L76.16,100.54a2.89,2.89,0,0,1-2.25,1.08H30.16a2.87,2.87,0,0,1-2.24-1.08L.63,66.31a2.85,2.85,0,0,1-.56-2.42L9.79,21.22a2.86,2.86,0,0,1,1.55-1.95L50.8.28a2.93,2.93,0,0,1,2.49,0l39.42,19a2.9,2.9,0,0,1,1.56,1.95L104,63.89A2.85,2.85,0,0,1,103.45,66.31Zm-4.81-5.16-8.2-35.9a5.33,5.33,0,0,0-2.89-3.63l-33.2-16a5.32,5.32,0,0,0-4.64,0l-33.18,16a5.33,5.33,0,0,0-2.89,3.63L5.44,61.15a5.31,5.31,0,0,0,1,4.53l23,28.81a5.3,5.3,0,0,0,4.19,2H70.44a5.32,5.32,0,0,0,4.2-2l23-28.81A5.35,5.35,0,0,0,98.64,61.15ZM67.87,54.2H53.94a.47.47,0,0,0-.46.46v7.47a.46.46,0,0,0,.45.46A56.39,56.39,0,0,1,66.5,64.34h.12a.46.46,0,0,0,.23-.06.49.49,0,0,0,.22-.29,47.91,47.91,0,0,0,1.27-9.32.51.51,0,0,0-.13-.34A.48.48,0,0,0,67.87,54.2Zm6.75-19.54a.45.45,0,0,0-.1-.37,29.27,29.27,0,0,0-10.41-8,.41.41,0,0,0-.19,0,.44.44,0,0,0-.36.18.47.47,0,0,0,0,.57,31.82,31.82,0,0,1,5.28,10,.43.43,0,0,0,.43.31.41.41,0,0,0,.16,0,30,30,0,0,0,5-2.28A.5.5,0,0,0,74.62,34.66Zm6,19.54H71.7a.47.47,0,0,0-.47.45,50.26,50.26,0,0,1-1.36,10.26.47.47,0,0,0,.3.55,33.86,33.86,0,0,1,6,2.75.46.46,0,0,0,.23.06.44.44,0,0,0,.39-.21,29,29,0,0,0,4.29-13.37.42.42,0,0,0-.12-.34A.45.45,0,0,0,80.61,54.2Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/k8gb/v0.13.0/v1.0.0/components/Gslb.json b/server/meshmodel/k8gb/v0.13.0/v1.0.0/components/Gslb.json new file mode 100644 index 00000000000..65edff814a7 --- /dev/null +++ b/server/meshmodel/k8gb/v0.13.0/v1.0.0/components/Gslb.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Gslb", + "schema": "{\n \"description\": \"Gslb is the Schema for the gslbs API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"GslbSpec defines the desired state of Gslb\",\n \"properties\": {\n \"ingress\": {\n \"description\": \"Gslb-enabled Ingress Spec\",\n \"properties\": {\n \"backend\": {\n \"description\": \"A default backend capable of servicing requests that don't match any\\nrule. At least one of 'backend' or 'rules' must be specified. This field\\nis optional to allow the loadbalancer controller or defaulting logic to\\nspecify a global default.\",\n \"properties\": {\n \"resource\": {\n \"description\": \"resource is an ObjectRef to another Kubernetes resource in the namespace\\nof the Ingress object. If resource is specified, a service.Name and\\nservice.Port must not be specified.\\nThis is a mutually exclusive setting with \\\"Service\\\".\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"service\": {\n \"description\": \"service references a service as a backend.\\nThis is a mutually exclusive setting with \\\"Resource\\\".\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is the referenced service. The service must exist in\\nthe same namespace as the Ingress object.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"port of the referenced service. A port name or port number\\nis required for a IngressServiceBackend.\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is the name of the port on the Service.\\nThis is a mutually exclusive setting with \\\"Number\\\".\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"number is the numerical port number (e.g. 80) on the Service.\\nThis is a mutually exclusive setting with \\\"Name\\\".\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"ingressClassName\": {\n \"description\": \"IngressClassName is the name of the IngressClass cluster resource. The\\nassociated IngressClass defines which controller will implement the\\nresource. This replaces the deprecated `kubernetes.io/ingress.class`\\nannotation. For backwards compatibility, when that annotation is set, it\\nmust be given precedence over this field. The controller may emit a\\nwarning if the field and annotation have different values.\\nImplementations of this API should ignore Ingresses without a class\\nspecified. An IngressClass resource may be marked as default, which can\\nbe used to set a default value for this field. For more information,\\nrefer to the IngressClass documentation.\",\n \"type\": \"string\"\n },\n \"rules\": {\n \"description\": \"A list of host rules used to configure the Ingress. If unspecified, or\\nno rule matches, all traffic is sent to the default backend.\",\n \"items\": {\n \"description\": \"IngressRule represents the rules mapping the paths under a specified host to\\nthe related backend services. Incoming requests are first evaluated for a host\\nmatch, then routed to the backend associated with the matching IngressRuleValue.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host is the fully qualified domain name of a network host, as defined by RFC 3986.\\nNote the following deviations from the \\\"host\\\" part of the\\nURI as defined in RFC 3986:\\n1. IPs are not allowed. Currently an IngressRuleValue can only apply to\\n the IP in the Spec of the parent Ingress.\\n2. The `:` delimiter is not respected because ports are not allowed.\\n\\t Currently the port of an Ingress is implicitly :80 for http and\\n\\t :443 for https.\\nBoth these may change in the future.\\nIncoming requests are matched against the host before the\\nIngressRuleValue. If the host is unspecified, the Ingress routes all\\ntraffic based on the specified IngressRuleValue.\\n\\n\\nHost can be \\\"precise\\\" which is a domain name without the terminating dot of\\na network host (e.g. \\\"foo.bar.com\\\") or \\\"wildcard\\\", which is a domain name\\nprefixed with a single wildcard label (e.g. \\\"*.foo.com\\\").\\nThe wildcard character '*' must appear by itself as the first DNS label and\\nmatches only a single label. You cannot have a wildcard label by itself (e.g. Host == \\\"*\\\").\\nRequests will be matched against the Host field in the following way:\\n1. If Host is precise, the request matches this rule if the http host header is equal to Host.\\n2. If Host is a wildcard, then the request matches this rule if the http host header\\nis to equal to the suffix (removing the first label) of the wildcard rule.\",\n \"type\": \"string\"\n },\n \"http\": {\n \"description\": \"HTTPIngressRuleValue is a list of http selectors\\npointing to backends. In the example: http://\\u003chost\\u003e/\\u003cpath\\u003e?\\u003csearchpart\\u003e\\n-\\u003e backend where where parts of the url correspond to\\nRFC 3986, this resource will be used to match against\\neverything after the last '/' and before the first '?'\\nor '#'.\",\n \"properties\": {\n \"paths\": {\n \"description\": \"paths is a collection of paths that map requests to backends.\",\n \"items\": {\n \"description\": \"HTTPIngressPath associates a path with a backend. Incoming urls matching the\\npath are forwarded to the backend.\",\n \"properties\": {\n \"backend\": {\n \"description\": \"backend defines the referenced service endpoint to which the traffic\\nwill be forwarded to.\",\n \"properties\": {\n \"resource\": {\n \"description\": \"resource is an ObjectRef to another Kubernetes resource in the namespace\\nof the Ingress object. If resource is specified, a service.Name and\\nservice.Port must not be specified.\\nThis is a mutually exclusive setting with \\\"Service\\\".\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"service\": {\n \"description\": \"service references a service as a backend.\\nThis is a mutually exclusive setting with \\\"Resource\\\".\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is the referenced service. The service must exist in\\nthe same namespace as the Ingress object.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"port of the referenced service. A port name or port number\\nis required for a IngressServiceBackend.\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is the name of the port on the Service.\\nThis is a mutually exclusive setting with \\\"Number\\\".\",\n \"type\": \"string\"\n },\n \"number\": {\n \"description\": \"number is the numerical port number (e.g. 80) on the Service.\\nThis is a mutually exclusive setting with \\\"Name\\\".\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"path\": {\n \"description\": \"path is matched against the path of an incoming request. Currently it can\\ncontain characters disallowed from the conventional \\\"path\\\" part of a URL\\nas defined by RFC 3986. Paths must begin with a '/' and must be present\\nwhen using PathType with value \\\"Exact\\\" or \\\"Prefix\\\".\",\n \"type\": \"string\"\n },\n \"pathType\": {\n \"description\": \"pathType determines the interpretation of the path matching. PathType can\\nbe one of the following values:\\n* Exact: Matches the URL path exactly.\\n* Prefix: Matches based on a URL path prefix split by '/'. Matching is\\n done on a path element by element basis. A path element refers is the\\n list of labels in the path split by the '/' separator. A request is a\\n match for path p if every p is an element-wise prefix of p of the\\n request path. Note that if the last element of the path is a substring\\n of the last element in request path, it is not a match (e.g. /foo/bar\\n matches /foo/bar/baz, but does not match /foo/barbaz).\\n* ImplementationSpecific: Interpretation of the Path matching is up to\\n the IngressClass. Implementations can treat this as a separate PathType\\n or treat it identically to Prefix or Exact path types.\\nImplementations are required to support all path types.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"backend\",\n \"pathType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"paths\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"http\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS configuration. Currently the Ingress only supports a single TLS\\nport, 443. If multiple members of this list specify different hosts, they\\nwill be multiplexed on the same port according to the hostname specified\\nthrough the SNI TLS extension, if the ingress controller fulfilling the\\ningress supports SNI.\",\n \"items\": {\n \"description\": \"IngressTLS describes the transport layer security associated with an ingress.\",\n \"properties\": {\n \"hosts\": {\n \"description\": \"hosts is a list of hosts included in the TLS certificate. The values in\\nthis list must match the name/s used in the tlsSecret. Defaults to the\\nwildcard host setting for the loadbalancer controller fulfilling this\\nIngress, if left unspecified.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret used to terminate TLS traffic on\\nport 443. Field is left optional to allow TLS routing based on SNI\\nhostname alone. If the SNI host in a listener conflicts with the \\\"Host\\\"\\nheader field used by an IngressRule, the SNI host is used for termination\\nand value of the \\\"Host\\\" header is used for routing.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"resourceRef\": {\n \"description\": \"ResourceRef spec\",\n \"properties\": {\n \"ingress\": {\n \"description\": \"Ingress selects a kubernetes.networking.k8s.io/v1.Ingress resource\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"strategy\": {\n \"description\": \"Gslb Strategy spec\",\n \"properties\": {\n \"dnsTtlSeconds\": {\n \"description\": \"Defines DNS record TTL in seconds\",\n \"type\": \"integer\"\n },\n \"primaryGeoTag\": {\n \"description\": \"Primary Geo Tag. Valid for failover strategy only\",\n \"type\": \"string\"\n },\n \"splitBrainThresholdSeconds\": {\n \"description\": \"Split brain TXT record expiration in seconds\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Load balancing strategy type:(roundRobin|failover)\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Weight is defined by map region:weight\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"strategy\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Gslb\",\n \"type\": \"object\"\n}", + "version": "k8gb.absa.oss/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Gslb", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/k8gb-io/k8gb/master/chart/k8gb/crd" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "K8GB", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#be0028", + "secondaryColor": "#FF456D\n", + "shape": "circle", + "source_uri": "git://github.com/k8gb-io/k8gb/master/chart/k8gb/crd", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.1 101.6\" style=\"enable-background:new 0 0 104.1 101.6\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m50.8.3-39.5 19c-.8.4-1.4 1.1-1.6 2L.1 63.9c-.2.8 0 1.7.6 2.4L28 100.5c.5.7 1.4 1.1 2.2 1.1H74c.9 0 1.7-.4 2.2-1.1l27.3-34.2c.5-.7.7-1.6.6-2.4l-9.7-42.7c-.2-.9-.8-1.6-1.6-2L53.4.2c-.9-.3-1.8-.3-2.6.1z\" style=\"fill:#fff\"\u003e\u003c/path\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"a\" gradientUnits=\"userSpaceOnUse\" x1=\"-.001\" y1=\"50.811\" x2=\"104.073\" y2=\"50.811\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" style=\"stop-color:#f52d28\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".25\" style=\"stop-color:#dc0032\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".5\" style=\"stop-color:#be0028\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".75\" style=\"stop-color:#aa052d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" style=\"stop-color:#960528\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M53.6 39.9c-.1-.1-.1-.2-.1-.3V24.3c0-.1.1-.3.2-.4.1-.1.2-.1.3-.1 4.9 1.1 9.3 6.3 12 14v.4c-.1.1-.2.2-.3.2-3.8 1-7.8 1.5-11.7 1.6-.1 0-.3 0-.4-.1zm-3.5 3c-4.2-.1-8.5-.7-12.6-1.8h-.1c-.1 0-.2 0-.2.1-.1.1-.2.2-.2.3-.7 3.1-1.2 6.2-1.3 9.3 0 .2.2.5.4.5H50c.3 0 .5-.2.5-.5v-7.5c.1-.2-.1-.4-.4-.4zm0-19H50c-4.9 1.1-9.3 6.3-12 13.9-.1.1-.1.3 0 .4.1.1.2.2.3.2 3.9 1 7.8 1.5 11.8 1.6.3 0 .5-.2.5-.5V24.3c0-.2-.2-.4-.5-.4zm0 30.3H36.2c-.1 0-.2.1-.3.1-.1.1-.1.2-.1.3.1 3.1.5 6.2 1.3 9.3 0 .1.1.2.2.3.1 0 .2.1.2.1h.1c4.1-1.1 8.3-1.6 12.6-1.8.3 0 .5-.2.5-.5v-7.5c-.1-.1-.3-.3-.6-.3zM35.2 68.5c-.1-.2-.2-.3-.4-.3h-.2c-1.7.6-3.4 1.4-5 2.3-.1.1-.2.2-.2.3 0 .1 0 .3.1.4 2.8 3.4 6.4 6.1 10.4 8h.2c.1 0 .3-.1.4-.2.1-.2.1-.4 0-.6-2.3-2.9-4.1-6.3-5.3-9.9zm-2.4-17.6c.1-3.5.6-6.9 1.4-10.3.1-.2-.1-.5-.3-.5-2.1-.7-4.1-1.6-6-2.8-.1 0-.2-.1-.2-.1-.2 0-.3.1-.4.2-2.5 4-4 8.6-4.3 13.4 0 .1 0 .2.1.3.1.1.2.2.3.2h8.9c.3 0 .5-.2.5-.4zm17.3 14.6c-4 .1-7.9.7-11.7 1.6-.1 0-.2.1-.3.2v.4c2.6 7.6 7.1 12.8 12 13.9h.1c.1 0 .2 0 .3-.1.1-.1.2-.2.2-.4V66c0-.1-.1-.2-.1-.3-.2-.2-.3-.2-.5-.2zm15.6 1.6c-3.8-1-7.7-1.5-11.7-1.6-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3v15.2c0 .1.1.3.2.4.1.1.2.1.3.1h.1c4.9-1.1 9.3-6.3 11.9-13.9 0-.2-.1-.5-.4-.6zm4.2-26.5c.8 3.4 1.3 6.8 1.4 10.3 0 .3.2.5.5.5h8.9c.1 0 .3-.1.3-.2.1-.1.1-.2.1-.3-.3-4.7-1.8-9.3-4.3-13.4-.1-.1-.2-.2-.4-.2-.1 0-.2 0-.2.1-1.9 1.1-3.9 2-6 2.8-.3-.1-.4.2-.3.4zm25.4 21.3c.1.6 0 1.2-.4 1.6l-23 28.8c-.4.5-.9.7-1.5.7H33.6c-.6 0-1.1-.3-1.5-.7l-23-28.8c-.4-.5-.5-1-.4-1.6L17 26c.1-.6.5-1 1-1.3l33.2-16c.5-.3 1.1-.3 1.6 0l33.2 16c.5.3.9.7 1 1.3l8.3 35.9zM84 52.8c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.4 32-32zm19.4 13.5-27.2 34.2c-.5.7-1.4 1.1-2.2 1.1H30.2c-.9 0-1.7-.4-2.2-1.1L.6 66.3c-.5-.7-.8-1.6-.6-2.4l9.7-42.7c.2-.9.8-1.6 1.6-2L50.8.2c.8-.4 1.7-.4 2.5 0l39.4 19c.8.4 1.4 1.1 1.6 2l9.7 42.7c.2.8 0 1.7-.6 2.4zm-4.8-5.2-8.2-35.9c-.4-1.6-1.4-2.9-2.9-3.6l-33.2-16c-1.5-.7-3.2-.7-4.6 0l-33.2 16c-1.5.7-2.5 2-2.9 3.6l-8.2 36c-.4 1.6 0 3.3 1 4.5l23 28.8c1 1.3 2.6 2 4.2 2h36.8c1.6 0 3.2-.7 4.2-2l23-28.8c1-1.3 1.4-3 1-4.6zm-30.7-6.9h-14c-.3 0-.5.2-.5.5v7.5c0 .3.2.5.5.5 4.2.1 8.5.7 12.6 1.7h.1c.1 0 .2 0 .2-.1.1-.1.2-.2.2-.3.7-3.1 1.2-6.2 1.3-9.3 0-.1 0-.2-.1-.3-.1-.2-.2-.2-.3-.2zm6.7-19.5c0-.1 0-.3-.1-.4-2.8-3.4-6.4-6.2-10.4-8h-.2c-.1 0-.3.1-.4.2-.1.2-.1.4 0 .6 2.3 3 4.1 6.4 5.3 10 .1.2.2.3.4.3h.2c1.7-.6 3.4-1.4 5-2.3.2-.1.2-.3.2-.4zm6 19.5h-8.9c-.3 0-.5.2-.5.5-.1 3.5-.6 6.9-1.4 10.3-.1.2.1.5.3.6 2.1.7 4.1 1.6 6 2.8.1 0 .1.1.2.1.2 0 .3-.1.4-.2 2.5-4 4-8.6 4.3-13.4 0-.1 0-.3-.1-.3 0-.3-.2-.4-.3-.4z\" style=\"fill:url(#a)\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.07 101.62\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.a{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"a\" d=\"M53.62,39.89a.44.44,0,0,1-.14-.33V24.33a.47.47,0,0,1,.18-.36.42.42,0,0,1,.28-.1h.11C58.91,25,63.38,30.2,66,37.82a.48.48,0,0,1,0,.37.44.44,0,0,1-.29.22A53.88,53.88,0,0,1,54,40h0A.44.44,0,0,1,53.62,39.89Zm-3.48,3a57.14,57.14,0,0,1-12.57-1.75l-.11,0a.4.4,0,0,0-.24.07.45.45,0,0,0-.21.29,47.15,47.15,0,0,0-1.27,9.32.45.45,0,0,0,.46.48H50.13a.47.47,0,0,0,.46-.46V43.38A.46.46,0,0,0,50.14,42.92Zm0-19H50c-4.87,1.11-9.34,6.32-12,13.93a.47.47,0,0,0,0,.37.44.44,0,0,0,.29.23A54.06,54.06,0,0,0,50.11,40h0a.46.46,0,0,0,.46-.46V24.33a.45.45,0,0,0-.46-.46Zm0,30.33H36.2a.48.48,0,0,0-.34.14.46.46,0,0,0-.12.34A47.15,47.15,0,0,0,37,64a.45.45,0,0,0,.21.29.48.48,0,0,0,.24.06h.11a56.55,56.55,0,0,1,12.57-1.75.46.46,0,0,0,.45-.46V54.66A.47.47,0,0,0,50.13,54.2ZM35.24,68.54a.48.48,0,0,0-.44-.32.45.45,0,0,0-.16,0,30.39,30.39,0,0,0-5,2.28.46.46,0,0,0-.23.31.47.47,0,0,0,.1.38,29.5,29.5,0,0,0,10.41,8,.43.43,0,0,0,.19,0,.46.46,0,0,0,.37-.18.47.47,0,0,0,0-.57A31.66,31.66,0,0,1,35.24,68.54Zm-2.4-17.68A50.87,50.87,0,0,1,34.2,40.6a.46.46,0,0,0-.29-.55,33.58,33.58,0,0,1-6-2.75.55.55,0,0,0-.24-.07.44.44,0,0,0-.39.22A29,29,0,0,0,23,50.82a.47.47,0,0,0,.12.34.45.45,0,0,0,.34.15h8.92A.47.47,0,0,0,32.84,50.86ZM50.13,65.48h0A54,54,0,0,0,38.4,67.1a.46.46,0,0,0-.29.22.48.48,0,0,0,0,.37c2.61,7.62,7.08,12.83,12,13.94h.1a.53.53,0,0,0,.29-.1.46.46,0,0,0,.17-.36V66a.48.48,0,0,0-.14-.34A.48.48,0,0,0,50.13,65.48Zm15.54,1.61A54,54,0,0,0,54,65.48h0a.48.48,0,0,0-.32.13.48.48,0,0,0-.14.34V81.18a.47.47,0,0,0,.18.36.48.48,0,0,0,.28.1h.11c4.86-1.11,9.33-6.32,11.94-13.94a.47.47,0,0,0-.32-.6Zm4.2-26.49a50.16,50.16,0,0,1,1.36,10.26.47.47,0,0,0,.47.45h8.91a.45.45,0,0,0,.34-.15.44.44,0,0,0,.12-.34,29,29,0,0,0-4.29-13.37.44.44,0,0,0-.39-.22.39.39,0,0,0-.23.07,34.24,34.24,0,0,1-6,2.75A.47.47,0,0,0,69.87,40.6ZM95.26,61.94a1.91,1.91,0,0,1-.37,1.61l-23,28.81a1.88,1.88,0,0,1-1.49.71H33.62a1.85,1.85,0,0,1-1.49-.71l-23-28.81a1.91,1.91,0,0,1-.37-1.61L17,26.05a1.9,1.9,0,0,1,1-1.29l33.2-16a1.82,1.82,0,0,1,1.64,0L86,24.74a1.88,1.88,0,0,1,1,1.29ZM84,52.75a32,32,0,1,0-32,32A32,32,0,0,0,84,52.75Zm19.41,13.56L76.16,100.54a2.89,2.89,0,0,1-2.25,1.08H30.16a2.87,2.87,0,0,1-2.24-1.08L.63,66.31a2.85,2.85,0,0,1-.56-2.42L9.79,21.22a2.86,2.86,0,0,1,1.55-1.95L50.8.28a2.93,2.93,0,0,1,2.49,0l39.42,19a2.9,2.9,0,0,1,1.56,1.95L104,63.89A2.85,2.85,0,0,1,103.45,66.31Zm-4.81-5.16-8.2-35.9a5.33,5.33,0,0,0-2.89-3.63l-33.2-16a5.32,5.32,0,0,0-4.64,0l-33.18,16a5.33,5.33,0,0,0-2.89,3.63L5.44,61.15a5.31,5.31,0,0,0,1,4.53l23,28.81a5.3,5.3,0,0,0,4.19,2H70.44a5.32,5.32,0,0,0,4.2-2l23-28.81A5.35,5.35,0,0,0,98.64,61.15ZM67.87,54.2H53.94a.47.47,0,0,0-.46.46v7.47a.46.46,0,0,0,.45.46A56.39,56.39,0,0,1,66.5,64.34h.12a.46.46,0,0,0,.23-.06.49.49,0,0,0,.22-.29,47.91,47.91,0,0,0,1.27-9.32.51.51,0,0,0-.13-.34A.48.48,0,0,0,67.87,54.2Zm6.75-19.54a.45.45,0,0,0-.1-.37,29.27,29.27,0,0,0-10.41-8,.41.41,0,0,0-.19,0,.44.44,0,0,0-.36.18.47.47,0,0,0,0,.57,31.82,31.82,0,0,1,5.28,10,.43.43,0,0,0,.43.31.41.41,0,0,0,.16,0,30,30,0,0,0,5-2.28A.5.5,0,0,0,74.62,34.66Zm6,19.54H71.7a.47.47,0,0,0-.47.45,50.26,50.26,0,0,1-1.36,10.26.47.47,0,0,0,.3.55,33.86,33.86,0,0,1,6,2.75.46.46,0,0,0,.23.06.44.44,0,0,0,.39-.21,29,29,0,0,0,4.29-13.37.42.42,0,0,0-.12-.34A.45.45,0,0,0,80.61,54.2Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.13.0" + }, + "name": "k8gb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Coordination \u0026 Service Discovery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#be0028", + "secondaryColor": "#FF456D\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.1 101.6\" style=\"enable-background:new 0 0 104.1 101.6\" xml:space=\"preserve\"\u003e\u003cpath d=\"m50.8.3-39.5 19c-.8.4-1.4 1.1-1.6 2L.1 63.9c-.2.8 0 1.7.6 2.4L28 100.5c.5.7 1.4 1.1 2.2 1.1H74c.9 0 1.7-.4 2.2-1.1l27.3-34.2c.5-.7.7-1.6.6-2.4l-9.7-42.7c-.2-.9-.8-1.6-1.6-2L53.4.2c-.9-.3-1.8-.3-2.6.1z\" style=\"fill:#fff\"/\u003e\u003clinearGradient id=\"a\" gradientUnits=\"userSpaceOnUse\" x1=\"-.001\" y1=\"50.811\" x2=\"104.073\" y2=\"50.811\"\u003e\u003cstop offset=\"0\" style=\"stop-color:#f52d28\"/\u003e\u003cstop offset=\".25\" style=\"stop-color:#dc0032\"/\u003e\u003cstop offset=\".5\" style=\"stop-color:#be0028\"/\u003e\u003cstop offset=\".75\" style=\"stop-color:#aa052d\"/\u003e\u003cstop offset=\"1\" style=\"stop-color:#960528\"/\u003e\u003c/linearGradient\u003e\u003cpath d=\"M53.6 39.9c-.1-.1-.1-.2-.1-.3V24.3c0-.1.1-.3.2-.4.1-.1.2-.1.3-.1 4.9 1.1 9.3 6.3 12 14v.4c-.1.1-.2.2-.3.2-3.8 1-7.8 1.5-11.7 1.6-.1 0-.3 0-.4-.1zm-3.5 3c-4.2-.1-8.5-.7-12.6-1.8h-.1c-.1 0-.2 0-.2.1-.1.1-.2.2-.2.3-.7 3.1-1.2 6.2-1.3 9.3 0 .2.2.5.4.5H50c.3 0 .5-.2.5-.5v-7.5c.1-.2-.1-.4-.4-.4zm0-19H50c-4.9 1.1-9.3 6.3-12 13.9-.1.1-.1.3 0 .4.1.1.2.2.3.2 3.9 1 7.8 1.5 11.8 1.6.3 0 .5-.2.5-.5V24.3c0-.2-.2-.4-.5-.4zm0 30.3H36.2c-.1 0-.2.1-.3.1-.1.1-.1.2-.1.3.1 3.1.5 6.2 1.3 9.3 0 .1.1.2.2.3.1 0 .2.1.2.1h.1c4.1-1.1 8.3-1.6 12.6-1.8.3 0 .5-.2.5-.5v-7.5c-.1-.1-.3-.3-.6-.3zM35.2 68.5c-.1-.2-.2-.3-.4-.3h-.2c-1.7.6-3.4 1.4-5 2.3-.1.1-.2.2-.2.3 0 .1 0 .3.1.4 2.8 3.4 6.4 6.1 10.4 8h.2c.1 0 .3-.1.4-.2.1-.2.1-.4 0-.6-2.3-2.9-4.1-6.3-5.3-9.9zm-2.4-17.6c.1-3.5.6-6.9 1.4-10.3.1-.2-.1-.5-.3-.5-2.1-.7-4.1-1.6-6-2.8-.1 0-.2-.1-.2-.1-.2 0-.3.1-.4.2-2.5 4-4 8.6-4.3 13.4 0 .1 0 .2.1.3.1.1.2.2.3.2h8.9c.3 0 .5-.2.5-.4zm17.3 14.6c-4 .1-7.9.7-11.7 1.6-.1 0-.2.1-.3.2v.4c2.6 7.6 7.1 12.8 12 13.9h.1c.1 0 .2 0 .3-.1.1-.1.2-.2.2-.4V66c0-.1-.1-.2-.1-.3-.2-.2-.3-.2-.5-.2zm15.6 1.6c-3.8-1-7.7-1.5-11.7-1.6-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3v15.2c0 .1.1.3.2.4.1.1.2.1.3.1h.1c4.9-1.1 9.3-6.3 11.9-13.9 0-.2-.1-.5-.4-.6zm4.2-26.5c.8 3.4 1.3 6.8 1.4 10.3 0 .3.2.5.5.5h8.9c.1 0 .3-.1.3-.2.1-.1.1-.2.1-.3-.3-4.7-1.8-9.3-4.3-13.4-.1-.1-.2-.2-.4-.2-.1 0-.2 0-.2.1-1.9 1.1-3.9 2-6 2.8-.3-.1-.4.2-.3.4zm25.4 21.3c.1.6 0 1.2-.4 1.6l-23 28.8c-.4.5-.9.7-1.5.7H33.6c-.6 0-1.1-.3-1.5-.7l-23-28.8c-.4-.5-.5-1-.4-1.6L17 26c.1-.6.5-1 1-1.3l33.2-16c.5-.3 1.1-.3 1.6 0l33.2 16c.5.3.9.7 1 1.3l8.3 35.9zM84 52.8c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.4 32-32zm19.4 13.5-27.2 34.2c-.5.7-1.4 1.1-2.2 1.1H30.2c-.9 0-1.7-.4-2.2-1.1L.6 66.3c-.5-.7-.8-1.6-.6-2.4l9.7-42.7c.2-.9.8-1.6 1.6-2L50.8.2c.8-.4 1.7-.4 2.5 0l39.4 19c.8.4 1.4 1.1 1.6 2l9.7 42.7c.2.8 0 1.7-.6 2.4zm-4.8-5.2-8.2-35.9c-.4-1.6-1.4-2.9-2.9-3.6l-33.2-16c-1.5-.7-3.2-.7-4.6 0l-33.2 16c-1.5.7-2.5 2-2.9 3.6l-8.2 36c-.4 1.6 0 3.3 1 4.5l23 28.8c1 1.3 2.6 2 4.2 2h36.8c1.6 0 3.2-.7 4.2-2l23-28.8c1-1.3 1.4-3 1-4.6zm-30.7-6.9h-14c-.3 0-.5.2-.5.5v7.5c0 .3.2.5.5.5 4.2.1 8.5.7 12.6 1.7h.1c.1 0 .2 0 .2-.1.1-.1.2-.2.2-.3.7-3.1 1.2-6.2 1.3-9.3 0-.1 0-.2-.1-.3-.1-.2-.2-.2-.3-.2zm6.7-19.5c0-.1 0-.3-.1-.4-2.8-3.4-6.4-6.2-10.4-8h-.2c-.1 0-.3.1-.4.2-.1.2-.1.4 0 .6 2.3 3 4.1 6.4 5.3 10 .1.2.2.3.4.3h.2c1.7-.6 3.4-1.4 5-2.3.2-.1.2-.3.2-.4zm6 19.5h-8.9c-.3 0-.5.2-.5.5-.1 3.5-.6 6.9-1.4 10.3-.1.2.1.5.3.6 2.1.7 4.1 1.6 6 2.8.1 0 .1.1.2.1.2 0 .3-.1.4-.2 2.5-4 4-8.6 4.3-13.4 0-.1 0-.3-.1-.3 0-.3-.2-.4-.3-.4z\" style=\"fill:url(#a)\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.07 101.62\"\u003e\u003cdefs\u003e\u003cstyle\u003e.a{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"a\" d=\"M53.62,39.89a.44.44,0,0,1-.14-.33V24.33a.47.47,0,0,1,.18-.36.42.42,0,0,1,.28-.1h.11C58.91,25,63.38,30.2,66,37.82a.48.48,0,0,1,0,.37.44.44,0,0,1-.29.22A53.88,53.88,0,0,1,54,40h0A.44.44,0,0,1,53.62,39.89Zm-3.48,3a57.14,57.14,0,0,1-12.57-1.75l-.11,0a.4.4,0,0,0-.24.07.45.45,0,0,0-.21.29,47.15,47.15,0,0,0-1.27,9.32.45.45,0,0,0,.46.48H50.13a.47.47,0,0,0,.46-.46V43.38A.46.46,0,0,0,50.14,42.92Zm0-19H50c-4.87,1.11-9.34,6.32-12,13.93a.47.47,0,0,0,0,.37.44.44,0,0,0,.29.23A54.06,54.06,0,0,0,50.11,40h0a.46.46,0,0,0,.46-.46V24.33a.45.45,0,0,0-.46-.46Zm0,30.33H36.2a.48.48,0,0,0-.34.14.46.46,0,0,0-.12.34A47.15,47.15,0,0,0,37,64a.45.45,0,0,0,.21.29.48.48,0,0,0,.24.06h.11a56.55,56.55,0,0,1,12.57-1.75.46.46,0,0,0,.45-.46V54.66A.47.47,0,0,0,50.13,54.2ZM35.24,68.54a.48.48,0,0,0-.44-.32.45.45,0,0,0-.16,0,30.39,30.39,0,0,0-5,2.28.46.46,0,0,0-.23.31.47.47,0,0,0,.1.38,29.5,29.5,0,0,0,10.41,8,.43.43,0,0,0,.19,0,.46.46,0,0,0,.37-.18.47.47,0,0,0,0-.57A31.66,31.66,0,0,1,35.24,68.54Zm-2.4-17.68A50.87,50.87,0,0,1,34.2,40.6a.46.46,0,0,0-.29-.55,33.58,33.58,0,0,1-6-2.75.55.55,0,0,0-.24-.07.44.44,0,0,0-.39.22A29,29,0,0,0,23,50.82a.47.47,0,0,0,.12.34.45.45,0,0,0,.34.15h8.92A.47.47,0,0,0,32.84,50.86ZM50.13,65.48h0A54,54,0,0,0,38.4,67.1a.46.46,0,0,0-.29.22.48.48,0,0,0,0,.37c2.61,7.62,7.08,12.83,12,13.94h.1a.53.53,0,0,0,.29-.1.46.46,0,0,0,.17-.36V66a.48.48,0,0,0-.14-.34A.48.48,0,0,0,50.13,65.48Zm15.54,1.61A54,54,0,0,0,54,65.48h0a.48.48,0,0,0-.32.13.48.48,0,0,0-.14.34V81.18a.47.47,0,0,0,.18.36.48.48,0,0,0,.28.1h.11c4.86-1.11,9.33-6.32,11.94-13.94a.47.47,0,0,0-.32-.6Zm4.2-26.49a50.16,50.16,0,0,1,1.36,10.26.47.47,0,0,0,.47.45h8.91a.45.45,0,0,0,.34-.15.44.44,0,0,0,.12-.34,29,29,0,0,0-4.29-13.37.44.44,0,0,0-.39-.22.39.39,0,0,0-.23.07,34.24,34.24,0,0,1-6,2.75A.47.47,0,0,0,69.87,40.6ZM95.26,61.94a1.91,1.91,0,0,1-.37,1.61l-23,28.81a1.88,1.88,0,0,1-1.49.71H33.62a1.85,1.85,0,0,1-1.49-.71l-23-28.81a1.91,1.91,0,0,1-.37-1.61L17,26.05a1.9,1.9,0,0,1,1-1.29l33.2-16a1.82,1.82,0,0,1,1.64,0L86,24.74a1.88,1.88,0,0,1,1,1.29ZM84,52.75a32,32,0,1,0-32,32A32,32,0,0,0,84,52.75Zm19.41,13.56L76.16,100.54a2.89,2.89,0,0,1-2.25,1.08H30.16a2.87,2.87,0,0,1-2.24-1.08L.63,66.31a2.85,2.85,0,0,1-.56-2.42L9.79,21.22a2.86,2.86,0,0,1,1.55-1.95L50.8.28a2.93,2.93,0,0,1,2.49,0l39.42,19a2.9,2.9,0,0,1,1.56,1.95L104,63.89A2.85,2.85,0,0,1,103.45,66.31Zm-4.81-5.16-8.2-35.9a5.33,5.33,0,0,0-2.89-3.63l-33.2-16a5.32,5.32,0,0,0-4.64,0l-33.18,16a5.33,5.33,0,0,0-2.89,3.63L5.44,61.15a5.31,5.31,0,0,0,1,4.53l23,28.81a5.3,5.3,0,0,0,4.19,2H70.44a5.32,5.32,0,0,0,4.2-2l23-28.81A5.35,5.35,0,0,0,98.64,61.15ZM67.87,54.2H53.94a.47.47,0,0,0-.46.46v7.47a.46.46,0,0,0,.45.46A56.39,56.39,0,0,1,66.5,64.34h.12a.46.46,0,0,0,.23-.06.49.49,0,0,0,.22-.29,47.91,47.91,0,0,0,1.27-9.32.51.51,0,0,0-.13-.34A.48.48,0,0,0,67.87,54.2Zm6.75-19.54a.45.45,0,0,0-.1-.37,29.27,29.27,0,0,0-10.41-8,.41.41,0,0,0-.19,0,.44.44,0,0,0-.36.18.47.47,0,0,0,0,.57,31.82,31.82,0,0,1,5.28,10,.43.43,0,0,0,.43.31.41.41,0,0,0,.16,0,30,30,0,0,0,5-2.28A.5.5,0,0,0,74.62,34.66Zm6,19.54H71.7a.47.47,0,0,0-.47.45,50.26,50.26,0,0,1-1.36,10.26.47.47,0,0,0,.3.55,33.86,33.86,0,0,1,6,2.75.46.46,0,0,0,.23.06.44.44,0,0,0,.39-.21,29,29,0,0,0,4.29-13.37.42.42,0,0,0-.12-.34A.45.45,0,0,0,80.61,54.2Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/k8gb/v0.13.0/v1.0.0/model.json b/server/meshmodel/k8gb/v0.13.0/v1.0.0/model.json new file mode 100644 index 00000000000..805ccac4e60 --- /dev/null +++ b/server/meshmodel/k8gb/v0.13.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "K8GB", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#be0028", + "secondaryColor": "#FF456D\n", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.1 101.6\" style=\"enable-background:new 0 0 104.1 101.6\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m50.8.3-39.5 19c-.8.4-1.4 1.1-1.6 2L.1 63.9c-.2.8 0 1.7.6 2.4L28 100.5c.5.7 1.4 1.1 2.2 1.1H74c.9 0 1.7-.4 2.2-1.1l27.3-34.2c.5-.7.7-1.6.6-2.4l-9.7-42.7c-.2-.9-.8-1.6-1.6-2L53.4.2c-.9-.3-1.8-.3-2.6.1z\" style=\"fill:#fff\"\u003e\u003c/path\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"a\" gradientUnits=\"userSpaceOnUse\" x1=\"-.001\" y1=\"50.811\" x2=\"104.073\" y2=\"50.811\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" style=\"stop-color:#f52d28\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".25\" style=\"stop-color:#dc0032\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".5\" style=\"stop-color:#be0028\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\".75\" style=\"stop-color:#aa052d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" style=\"stop-color:#960528\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M53.6 39.9c-.1-.1-.1-.2-.1-.3V24.3c0-.1.1-.3.2-.4.1-.1.2-.1.3-.1 4.9 1.1 9.3 6.3 12 14v.4c-.1.1-.2.2-.3.2-3.8 1-7.8 1.5-11.7 1.6-.1 0-.3 0-.4-.1zm-3.5 3c-4.2-.1-8.5-.7-12.6-1.8h-.1c-.1 0-.2 0-.2.1-.1.1-.2.2-.2.3-.7 3.1-1.2 6.2-1.3 9.3 0 .2.2.5.4.5H50c.3 0 .5-.2.5-.5v-7.5c.1-.2-.1-.4-.4-.4zm0-19H50c-4.9 1.1-9.3 6.3-12 13.9-.1.1-.1.3 0 .4.1.1.2.2.3.2 3.9 1 7.8 1.5 11.8 1.6.3 0 .5-.2.5-.5V24.3c0-.2-.2-.4-.5-.4zm0 30.3H36.2c-.1 0-.2.1-.3.1-.1.1-.1.2-.1.3.1 3.1.5 6.2 1.3 9.3 0 .1.1.2.2.3.1 0 .2.1.2.1h.1c4.1-1.1 8.3-1.6 12.6-1.8.3 0 .5-.2.5-.5v-7.5c-.1-.1-.3-.3-.6-.3zM35.2 68.5c-.1-.2-.2-.3-.4-.3h-.2c-1.7.6-3.4 1.4-5 2.3-.1.1-.2.2-.2.3 0 .1 0 .3.1.4 2.8 3.4 6.4 6.1 10.4 8h.2c.1 0 .3-.1.4-.2.1-.2.1-.4 0-.6-2.3-2.9-4.1-6.3-5.3-9.9zm-2.4-17.6c.1-3.5.6-6.9 1.4-10.3.1-.2-.1-.5-.3-.5-2.1-.7-4.1-1.6-6-2.8-.1 0-.2-.1-.2-.1-.2 0-.3.1-.4.2-2.5 4-4 8.6-4.3 13.4 0 .1 0 .2.1.3.1.1.2.2.3.2h8.9c.3 0 .5-.2.5-.4zm17.3 14.6c-4 .1-7.9.7-11.7 1.6-.1 0-.2.1-.3.2v.4c2.6 7.6 7.1 12.8 12 13.9h.1c.1 0 .2 0 .3-.1.1-.1.2-.2.2-.4V66c0-.1-.1-.2-.1-.3-.2-.2-.3-.2-.5-.2zm15.6 1.6c-3.8-1-7.7-1.5-11.7-1.6-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3v15.2c0 .1.1.3.2.4.1.1.2.1.3.1h.1c4.9-1.1 9.3-6.3 11.9-13.9 0-.2-.1-.5-.4-.6zm4.2-26.5c.8 3.4 1.3 6.8 1.4 10.3 0 .3.2.5.5.5h8.9c.1 0 .3-.1.3-.2.1-.1.1-.2.1-.3-.3-4.7-1.8-9.3-4.3-13.4-.1-.1-.2-.2-.4-.2-.1 0-.2 0-.2.1-1.9 1.1-3.9 2-6 2.8-.3-.1-.4.2-.3.4zm25.4 21.3c.1.6 0 1.2-.4 1.6l-23 28.8c-.4.5-.9.7-1.5.7H33.6c-.6 0-1.1-.3-1.5-.7l-23-28.8c-.4-.5-.5-1-.4-1.6L17 26c.1-.6.5-1 1-1.3l33.2-16c.5-.3 1.1-.3 1.6 0l33.2 16c.5.3.9.7 1 1.3l8.3 35.9zM84 52.8c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.4 32-32zm19.4 13.5-27.2 34.2c-.5.7-1.4 1.1-2.2 1.1H30.2c-.9 0-1.7-.4-2.2-1.1L.6 66.3c-.5-.7-.8-1.6-.6-2.4l9.7-42.7c.2-.9.8-1.6 1.6-2L50.8.2c.8-.4 1.7-.4 2.5 0l39.4 19c.8.4 1.4 1.1 1.6 2l9.7 42.7c.2.8 0 1.7-.6 2.4zm-4.8-5.2-8.2-35.9c-.4-1.6-1.4-2.9-2.9-3.6l-33.2-16c-1.5-.7-3.2-.7-4.6 0l-33.2 16c-1.5.7-2.5 2-2.9 3.6l-8.2 36c-.4 1.6 0 3.3 1 4.5l23 28.8c1 1.3 2.6 2 4.2 2h36.8c1.6 0 3.2-.7 4.2-2l23-28.8c1-1.3 1.4-3 1-4.6zm-30.7-6.9h-14c-.3 0-.5.2-.5.5v7.5c0 .3.2.5.5.5 4.2.1 8.5.7 12.6 1.7h.1c.1 0 .2 0 .2-.1.1-.1.2-.2.2-.3.7-3.1 1.2-6.2 1.3-9.3 0-.1 0-.2-.1-.3-.1-.2-.2-.2-.3-.2zm6.7-19.5c0-.1 0-.3-.1-.4-2.8-3.4-6.4-6.2-10.4-8h-.2c-.1 0-.3.1-.4.2-.1.2-.1.4 0 .6 2.3 3 4.1 6.4 5.3 10 .1.2.2.3.4.3h.2c1.7-.6 3.4-1.4 5-2.3.2-.1.2-.3.2-.4zm6 19.5h-8.9c-.3 0-.5.2-.5.5-.1 3.5-.6 6.9-1.4 10.3-.1.2.1.5.3.6 2.1.7 4.1 1.6 6 2.8.1 0 .1.1.2.1.2 0 .3-.1.4-.2 2.5-4 4-8.6 4.3-13.4 0-.1 0-.3-.1-.3 0-.3-.2-.4-.3-.4z\" style=\"fill:url(#a)\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 104.07 101.62\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.a{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"a\" d=\"M53.62,39.89a.44.44,0,0,1-.14-.33V24.33a.47.47,0,0,1,.18-.36.42.42,0,0,1,.28-.1h.11C58.91,25,63.38,30.2,66,37.82a.48.48,0,0,1,0,.37.44.44,0,0,1-.29.22A53.88,53.88,0,0,1,54,40h0A.44.44,0,0,1,53.62,39.89Zm-3.48,3a57.14,57.14,0,0,1-12.57-1.75l-.11,0a.4.4,0,0,0-.24.07.45.45,0,0,0-.21.29,47.15,47.15,0,0,0-1.27,9.32.45.45,0,0,0,.46.48H50.13a.47.47,0,0,0,.46-.46V43.38A.46.46,0,0,0,50.14,42.92Zm0-19H50c-4.87,1.11-9.34,6.32-12,13.93a.47.47,0,0,0,0,.37.44.44,0,0,0,.29.23A54.06,54.06,0,0,0,50.11,40h0a.46.46,0,0,0,.46-.46V24.33a.45.45,0,0,0-.46-.46Zm0,30.33H36.2a.48.48,0,0,0-.34.14.46.46,0,0,0-.12.34A47.15,47.15,0,0,0,37,64a.45.45,0,0,0,.21.29.48.48,0,0,0,.24.06h.11a56.55,56.55,0,0,1,12.57-1.75.46.46,0,0,0,.45-.46V54.66A.47.47,0,0,0,50.13,54.2ZM35.24,68.54a.48.48,0,0,0-.44-.32.45.45,0,0,0-.16,0,30.39,30.39,0,0,0-5,2.28.46.46,0,0,0-.23.31.47.47,0,0,0,.1.38,29.5,29.5,0,0,0,10.41,8,.43.43,0,0,0,.19,0,.46.46,0,0,0,.37-.18.47.47,0,0,0,0-.57A31.66,31.66,0,0,1,35.24,68.54Zm-2.4-17.68A50.87,50.87,0,0,1,34.2,40.6a.46.46,0,0,0-.29-.55,33.58,33.58,0,0,1-6-2.75.55.55,0,0,0-.24-.07.44.44,0,0,0-.39.22A29,29,0,0,0,23,50.82a.47.47,0,0,0,.12.34.45.45,0,0,0,.34.15h8.92A.47.47,0,0,0,32.84,50.86ZM50.13,65.48h0A54,54,0,0,0,38.4,67.1a.46.46,0,0,0-.29.22.48.48,0,0,0,0,.37c2.61,7.62,7.08,12.83,12,13.94h.1a.53.53,0,0,0,.29-.1.46.46,0,0,0,.17-.36V66a.48.48,0,0,0-.14-.34A.48.48,0,0,0,50.13,65.48Zm15.54,1.61A54,54,0,0,0,54,65.48h0a.48.48,0,0,0-.32.13.48.48,0,0,0-.14.34V81.18a.47.47,0,0,0,.18.36.48.48,0,0,0,.28.1h.11c4.86-1.11,9.33-6.32,11.94-13.94a.47.47,0,0,0-.32-.6Zm4.2-26.49a50.16,50.16,0,0,1,1.36,10.26.47.47,0,0,0,.47.45h8.91a.45.45,0,0,0,.34-.15.44.44,0,0,0,.12-.34,29,29,0,0,0-4.29-13.37.44.44,0,0,0-.39-.22.39.39,0,0,0-.23.07,34.24,34.24,0,0,1-6,2.75A.47.47,0,0,0,69.87,40.6ZM95.26,61.94a1.91,1.91,0,0,1-.37,1.61l-23,28.81a1.88,1.88,0,0,1-1.49.71H33.62a1.85,1.85,0,0,1-1.49-.71l-23-28.81a1.91,1.91,0,0,1-.37-1.61L17,26.05a1.9,1.9,0,0,1,1-1.29l33.2-16a1.82,1.82,0,0,1,1.64,0L86,24.74a1.88,1.88,0,0,1,1,1.29ZM84,52.75a32,32,0,1,0-32,32A32,32,0,0,0,84,52.75Zm19.41,13.56L76.16,100.54a2.89,2.89,0,0,1-2.25,1.08H30.16a2.87,2.87,0,0,1-2.24-1.08L.63,66.31a2.85,2.85,0,0,1-.56-2.42L9.79,21.22a2.86,2.86,0,0,1,1.55-1.95L50.8.28a2.93,2.93,0,0,1,2.49,0l39.42,19a2.9,2.9,0,0,1,1.56,1.95L104,63.89A2.85,2.85,0,0,1,103.45,66.31Zm-4.81-5.16-8.2-35.9a5.33,5.33,0,0,0-2.89-3.63l-33.2-16a5.32,5.32,0,0,0-4.64,0l-33.18,16a5.33,5.33,0,0,0-2.89,3.63L5.44,61.15a5.31,5.31,0,0,0,1,4.53l23,28.81a5.3,5.3,0,0,0,4.19,2H70.44a5.32,5.32,0,0,0,4.2-2l23-28.81A5.35,5.35,0,0,0,98.64,61.15ZM67.87,54.2H53.94a.47.47,0,0,0-.46.46v7.47a.46.46,0,0,0,.45.46A56.39,56.39,0,0,1,66.5,64.34h.12a.46.46,0,0,0,.23-.06.49.49,0,0,0,.22-.29,47.91,47.91,0,0,0,1.27-9.32.51.51,0,0,0-.13-.34A.48.48,0,0,0,67.87,54.2Zm6.75-19.54a.45.45,0,0,0-.1-.37,29.27,29.27,0,0,0-10.41-8,.41.41,0,0,0-.19,0,.44.44,0,0,0-.36.18.47.47,0,0,0,0,.57,31.82,31.82,0,0,1,5.28,10,.43.43,0,0,0,.43.31.41.41,0,0,0,.16,0,30,30,0,0,0,5-2.28A.5.5,0,0,0,74.62,34.66Zm6,19.54H71.7a.47.47,0,0,0-.47.45,50.26,50.26,0,0,1-1.36,10.26.47.47,0,0,0,.3.55,33.86,33.86,0,0,1,6,2.75.46.46,0,0,0,.23.06.44.44,0,0,0,.39-.21,29,29,0,0,0,4.29-13.37.42.42,0,0,0-.12-.34A.45.45,0,0,0,80.61,54.2Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.13.0" + }, + "name": "k8gb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Coordination \u0026 Service Discovery", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/karmada/v1.10.4/v1.0.0/components/Karmada.json b/server/meshmodel/karmada/v1.10.4/v1.0.0/components/Karmada.json new file mode 100644 index 00000000000..edb541bceb9 --- /dev/null +++ b/server/meshmodel/karmada/v1.10.4/v1.0.0/components/Karmada.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Karmada", + "schema": "{\n \"description\": \"Karmada enables declarative installation of karmada.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Spec defines the desired behavior of the Karmada.\",\n \"properties\": {\n \"components\": {\n \"description\": \"Components define all of karmada components.\\nnot all of these components need to be installed.\",\n \"properties\": {\n \"etcd\": {\n \"description\": \"Etcd holds configuration for etcd.\",\n \"properties\": {\n \"external\": {\n \"description\": \"External describes how to connect to an external etcd cluster\\nLocal and External are mutually exclusive\",\n \"properties\": {\n \"caData\": {\n \"description\": \"CAData is an SSL Certificate Authority file used to secure etcd communication.\\nRequired if using a TLS connection.\",\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"certData\": {\n \"description\": \"CertData is an SSL certification file used to secure etcd communication.\\nRequired if using a TLS connection.\",\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"endpoints\": {\n \"description\": \"Endpoints of etcd members. Required for ExternalEtcd.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyData\": {\n \"description\": \"KeyData is an SSL key file used to secure etcd communication.\\nRequired if using a TLS connection.\",\n \"format\": \"byte\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"caData\",\n \"certData\",\n \"endpoints\",\n \"keyData\"\n ],\n \"type\": \"object\"\n },\n \"local\": {\n \"description\": \"Local provides configuration knobs for configuring the built-in etcd instance\\nLocal and External are mutually exclusive\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"peerCertSANs\": {\n \"description\": \"PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serverCertSANs\": {\n \"description\": \"ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"volumeData\": {\n \"description\": \"VolumeData describes the settings of etcd data store.\\nWe will support 3 modes: emptyDir, hostPath, PVC. default by hostPath.\",\n \"properties\": {\n \"emptyDir\": {\n \"description\": \"EmptyDir represents a temporary directory that shares a pod's lifetime.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory.\\nThe default is \\\"\\\" which means to use the node's default medium.\\nMust be an empty string (default) or Memory.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume.\\nThe size limit is also applicable for memory medium.\\nThe maximum usage on memory medium EmptyDir would be the minimum value between\\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\\nThe default is nil which means that the limit is undefined.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"HostPath represents a pre-existing file or directory on the host\\nmachine that is directly exposed to the container. This is generally\\nused for system agents or other privileged things that are allowed\\nto see the host machine. Most containers will NOT need this.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\\n---\\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\\nmount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host.\\nIf the path is a symlink, it will follow the link to the real path.\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume\\nDefaults to \\\"\\\"\\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"volumeClaim\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC\\nwhen creating it. No other fields are allowed and will be rejected during\\nvalidation.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is\\ncopied unchanged into the PVC that gets created from this\\ntemplate. The same fields as in a PersistentVolumeClaim\\nare also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"karmadaAPIServer\": {\n \"description\": \"KarmadaAPIServer holds settings to kube-apiserver component. Currently, kube-apiserver\\nis used as the apiserver of karmada. we had the same experience as k8s apiserver.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"certSANs\": {\n \"description\": \"CertSANs sets extra Subject Alternative Names for the API Server signing cert.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the kube-apiserver component or\\noverride. A key in this map is the flag name as it appears on the command line except\\nwithout leading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the\\nkube-apiserver component. In the future, we will provide a more structured way\\nto configure the component. Once that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/\\nfor details.\",\n \"type\": \"object\"\n },\n \"featureGates\": {\n \"additionalProperties\": {\n \"type\": \"boolean\"\n },\n \"description\": \"FeatureGates enabled by the user.\\nMore info: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAnnotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ServiceAnnotations is an extra set of annotations for service of karmada apiserver.\\nmore info: https://github.com/karmada-io/karmada/issues/4634\",\n \"type\": \"object\"\n },\n \"serviceSubnet\": {\n \"description\": \"ServiceSubnet is the subnet used by k8s services. Defaults to \\\"10.96.0.0/12\\\".\",\n \"type\": \"string\"\n },\n \"serviceType\": {\n \"description\": \"ServiceType represents the service type of karmada apiserver.\\nit is ClusterIP by default.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"karmadaAggregatedAPIServer\": {\n \"description\": \"KarmadaAggregatedAPIServer holds settings to karmada-aggregated-apiserver component of the karmada.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"certSANs\": {\n \"description\": \"CertSANs sets extra Subject Alternative Names for the API Server signing cert.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the karmada-aggregated-apiserver component or\\noverride. A key in this map is the flag name as it appears on the command line except\\nwithout leading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the\\nkarmada-aggregated-apiserver component. In the future, we will provide a more structured way\\nto configure the component. Once that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://karmada.io/docs/reference/components/karmada-aggregated-apiserver\\nfor details.\",\n \"type\": \"object\"\n },\n \"featureGates\": {\n \"additionalProperties\": {\n \"type\": \"boolean\"\n },\n \"description\": \"FeatureGates enabled by the user.\\n- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models\\nMore info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"karmadaControllerManager\": {\n \"description\": \"KarmadaControllerManager holds settings to karmada-controller-manager component of the karmada.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"controllers\": {\n \"description\": \"A list of controllers to enable. '*' enables all on-by-default controllers,\\n'foo' enables the controller named 'foo', '-foo' disables the controller named\\n'foo'.\\n\\n\\nAll controllers: binding, cluster, clusterStatus, endpointSlice, execution,\\nfederatedResourceQuotaStatus, federatedResourceQuotaSync, hpa, namespace,\\nserviceExport, serviceImport, unifiedAuth, workStatus.\\nDisabled-by-default controllers: hpa (default [*])\\nActual Supported controllers depend on the version of Karmada. See\\nhttps://karmada.io/docs/administrator/configuration/configure-controllers#configure-karmada-controllers\\nfor details.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the karmada-controller-manager component or\\noverride. A key in this map is the flag name as it appears on the command line except\\nwithout leading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the\\nkarmada-controller-manager component. In the future, we will provide a more structured way\\nto configure the component. Once that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://karmada.io/docs/reference/components/karmada-controller-manager\\nfor details.\",\n \"type\": \"object\"\n },\n \"featureGates\": {\n \"additionalProperties\": {\n \"type\": \"boolean\"\n },\n \"description\": \"FeatureGates enabled by the user.\\n- Failover: https://karmada.io/docs/userguide/failover/#failover\\n- GracefulEviction: https://karmada.io/docs/userguide/failover/#graceful-eviction-feature\\n- PropagateDeps: https://karmada.io/docs/userguide/scheduling/propagate-dependencies\\n- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models\\nMore info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"karmadaDescheduler\": {\n \"description\": \"KarmadaDescheduler holds settings to karmada-descheduler component of the karmada.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the karmada-descheduler component or override.\\nA key in this map is the flag name as it appears on the command line except without\\nleading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the karmada-descheduler\\ncomponent. In the future, we will provide a more structured way to configure the component.\\nOnce that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://karmada.io/docs/reference/components/karmada-descheduler\\nfor details.\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"karmadaMetricsAdapter\": {\n \"description\": \"KarmadaMetricsAdapter holds settings to karmada metrics adapter component of the karmada.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the karmada-metrics-adapter component or override.\\nA key in this map is the flag name as it appears on the command line except without\\nleading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the karmada-metrics-adapter\\ncomponent. In the future, we will provide a more structured way to configure the component.\\nOnce that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://karmada.io/docs/reference/components/karmada-metrics-adapter\\nfor details.\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"karmadaScheduler\": {\n \"description\": \"KarmadaScheduler holds settings to karmada-scheduler component of the karmada.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the karmada-scheduler component or override.\\nA key in this map is the flag name as it appears on the command line except without\\nleading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the karmada-scheduler\\ncomponent. In the future, we will provide a more structured way to configure the component.\\nOnce that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://karmada.io/docs/reference/components/karmada-scheduler\\nfor details.\",\n \"type\": \"object\"\n },\n \"featureGates\": {\n \"additionalProperties\": {\n \"type\": \"boolean\"\n },\n \"description\": \"FeatureGates enabled by the user.\\n- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models\\nMore info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"karmadaSearch\": {\n \"description\": \"KarmadaSearch holds settings to karmada search component of the karmada.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the karmada-search component or override.\\nA key in this map is the flag name as it appears on the command line except without\\nleading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the karmada-search\\ncomponent. In the future, we will provide a more structured way to configure the component.\\nOnce that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://karmada.io/docs/reference/components/karmada-search\\nfor details.\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"karmadaWebhook\": {\n \"description\": \"KarmadaWebhook holds settings to karmada-webhook component of the karmada.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the karmada-webhook component or\\noverride. A key in this map is the flag name as it appears on the command line except\\nwithout leading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the\\nkarmada-webhook component. In the future, we will provide a more structured way\\nto configure the component. Once that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://karmada.io/docs/reference/components/karmada-webhook\\nfor details.\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"kubeControllerManager\": {\n \"description\": \"KubeControllerManager holds settings to kube-controller-manager component of the karmada.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations is an unstructured key value map stored with a resource that may be\\nset by external tools to store and retrieve arbitrary metadata. They are not\\nqueryable and should be preserved when modifying objects.\\nMore info: http://kubernetes.io/docs/user-guide/annotations\",\n \"type\": \"object\"\n },\n \"controllers\": {\n \"description\": \"A list of controllers to enable. '*' enables all on-by-default controllers,\\n'foo' enables the controller named 'foo', '-foo' disables the controller named\\n'foo'.\\n\\n\\nAll controllers: attachdetach, bootstrapsigner, cloud-node-lifecycle,\\nclusterrole-aggregation, cronjob, csrapproving, csrcleaner, csrsigning,\\ndaemonset, deployment, disruption, endpoint, endpointslice,\\nendpointslicemirroring, ephemeral-volume, garbagecollector,\\nhorizontalpodautoscaling, job, namespace, nodeipam, nodelifecycle,\\npersistentvolume-binder, persistentvolume-expander, podgc, pv-protection,\\npvc-protection, replicaset, replicationcontroller, resourcequota,\\nroot-ca-cert-publisher, route, service, serviceaccount, serviceaccount-token,\\nstatefulset, tokencleaner, ttl, ttl-after-finished\\nDisabled-by-default controllers: bootstrapsigner, tokencleaner (default [*])\\nActual Supported controllers depend on the version of Kubernetes. See\\nhttps://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/\\nfor details.\\n\\n\\nHowever, Karmada uses Kubernetes Native API definitions for federated resource template,\\nso it doesn't need enable some resource related controllers like daemonset, deployment etc.\\nOn the other hand, Karmada leverages the capabilities of the Kubernetes controller to\\nmanage the lifecycle of the federated resource, so it needs to enable some controllers.\\nFor example, the `namespace` controller is used to manage the lifecycle of the namespace\\nand the `garbagecollector` controller handles automatic clean-up of redundant items in\\nyour karmada.\\n\\n\\nAccording to the user feedback and karmada requirements, the following controllers are\\nenabled by default: namespace, garbagecollector, serviceaccount-token, ttl-after-finished,\\nbootstrapsigner,csrapproving,csrcleaner,csrsigning. See\\nhttps://karmada.io/docs/administrator/configuration/configure-controllers#kubernetes-controllers\\n\\n\\nOthers are disabled by default. If you want to enable or disable other controllers, you\\nhave to explicitly specify all the controllers that kube-controller-manager should enable\\nat startup phase.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"extraArgs\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"ExtraArgs is an extra set of flags to pass to the kube-controller-manager component or\\noverride. A key in this map is the flag name as it appears on the command line except\\nwithout leading dash(es).\\n\\n\\nNote: This is a temporary solution to allow for the configuration of the\\nkube-controller-manager component. In the future, we will provide a more structured way\\nto configure the component. Once that is done, this field will be discouraged to be used.\\nIncorrect settings on this field maybe lead to the corresponding component in an unhealthy\\nstate. Before you do it, please confirm that you understand the risks of this configuration.\\n\\n\\nFor supported flags, please see\\nhttps://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/\\nfor details.\",\n \"type\": \"object\"\n },\n \"featureGates\": {\n \"additionalProperties\": {\n \"type\": \"boolean\"\n },\n \"description\": \"FeatureGates enabled by the user.\\nMore info: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/\",\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"ImagePullPolicy defines the policy for pulling the container image.\\nIf not specified, it defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"imageRepository\": {\n \"description\": \"ImageRepository sets the container registry to pull images from.\\nif not set, the ImageRepository defined in KarmadaSpec will be used instead.\",\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"description\": \"ImageTag allows to specify a tag for the image.\\nIn case this value is set, operator does not change automatically the version\\nof the above components during upgrades.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Map of string keys and values that can be used to organize and categorize\\n(scope and select) objects. May match selectors of replication controllers\\nand services.\\nMore info: http://kubernetes.io/docs/user-guide/labels\",\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit\\nzero and not specified. Defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this component.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"featureGates\": {\n \"additionalProperties\": {\n \"type\": \"boolean\"\n },\n \"description\": \"FeatureGates enabled by the user.\\n- Failover: https://karmada.io/docs/userguide/failover/#failover\\n- GracefulEviction: https://karmada.io/docs/userguide/failover/#graceful-eviction-feature\\n- PropagateDeps: https://karmada.io/docs/userguide/scheduling/propagate-dependencies\\n- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models\\nMore info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go\",\n \"type\": \"object\"\n },\n \"hostCluster\": {\n \"description\": \"HostCluster represents the cluster where to install the Karmada control plane.\\nIf not set, the control plane will be installed on the cluster where\\nrunning the operator.\",\n \"properties\": {\n \"apiEndpoint\": {\n \"description\": \"APIEndpoint is the API endpoint of the cluster where deploy Karmada\\ncontrol plane on.\\nThis can be a hostname, hostname:port, IP or IP:port.\",\n \"type\": \"string\"\n },\n \"networking\": {\n \"description\": \"Networking holds configuration for the networking topology of the cluster.\",\n \"properties\": {\n \"dnsDomain\": {\n \"description\": \"DNSDomain is the dns domain used by k8s services. Defaults to \\\"cluster.local\\\".\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef represents the secret contains mandatory credentials to\\naccess the cluster.\\nThe secret should hold credentials as follows:\\n- secret.data.token\\n- secret.data.caBundle\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the name of resource being referenced.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace for the resource being referenced.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"privateRegistry\": {\n \"description\": \"PrivateRegistry is the global image registry.\\nIf set, the operator will pull all required images from it, no matter\\nthe image is maintained by Karmada or Kubernetes.\\nIt will be useful for offline installation to specify an accessible registry.\",\n \"properties\": {\n \"registry\": {\n \"description\": \"Registry is the image registry hostname, like:\\n- docker.io\\n- fictional.registry.example\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Karmada\",\n \"type\": \"object\"\n}", + "version": "operator.karmada.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Karmada", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/karmada-io/karmada/master/operator/config/crds" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Karmada", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2765ff", + "secondaryColor": "#3d74ff", + "shape": "circle", + "source_uri": "git://github.com/karmada-io/karmada/master/operator/config/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 220.61 173.65\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#1791ff;}.cls-2{fill:#51adff;}.cls-3{fill:#1781ff;}.cls-4{fill:#51a1ff;}.cls-5{fill:#2765ff;}.cls-6{fill:#508aff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eicon-color\u003c/title\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_2\" data-name=\"Layer 2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1-2\" data-name=\"Layer 1\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M0,119.72H29.57A91.32,91.32,0,0,0,36.64,110c.12-1.87.2-3.75.2-5.65A87.07,87.07,0,0,0,11.59,42.93a74.5,74.5,0,0,1,5.8,28.89A74.4,74.4,0,0,1,0,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M17.2,131.29H33.48c.7-2.56,1.32-5.13,1.81-7.69H0A24.7,24.7,0,0,1,17.2,131.29Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M29.69,142.26c1.08-2.64,2.08-5.32,2.93-8.06H19.56a24.45,24.45,0,0,1,3.69,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M28.49,145.17H23.8a25.11,25.11,0,0,1,.22,3.15A24.77,24.77,0,0,1,23,155.46,77.67,77.67,0,0,0,28.49,145.17Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M183.78,119.72h35.47a87.38,87.38,0,0,0-23.88-76.79,74.79,74.79,0,0,1-11.59,76.79Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M201,131.29H217.5c.69-2.52,1.29-5.09,1.75-7.69H183.78A24.74,24.74,0,0,1,201,131.29Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M213.64,142.26c1.11-2.63,2.14-5.31,3-8.06h-13.3a24.65,24.65,0,0,1,3.69,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M212.4,145.17h-4.82a25.12,25.12,0,0,1,.21,3.15,24.76,24.76,0,0,1-1,7.14A85.55,85.55,0,0,0,212.4,145.17Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M36.19,119.72H76q2.79-3.36,5.32-6.93a108,108,0,0,0,.66-12A108.89,108.89,0,0,0,50.46,24,93.16,93.16,0,0,1,57.7,60.13,92.93,92.93,0,0,1,36.19,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M78.54,131.29c.65-2.55,1.23-5.11,1.7-7.69h-44c-.08.1-.15-.09-.22,0a30.61,30.61,0,0,1,19.36,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M75.2,142.26c1-2.65,1.83-5.34,2.59-8.06H58.21a31.71,31.71,0,0,1,5.1,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M70.53,153.22c1.27-2.62,2.48-5.3,3.56-8.05H64.43a30.73,30.73,0,0,1,1.49,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M65.94,156.13a31.46,31.46,0,0,1-1.27,7.57c1.56-2.43,3-5,4.38-7.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M139,119.72h38.34a76.75,76.75,0,0,0,7.11-10.1c.23-2.91.37-5.85.37-8.83A108.86,108.86,0,0,0,153.3,24,93.41,93.41,0,0,1,139,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M181.34,131.29c.65-2.55,1.25-5.12,1.72-7.69H139c-.08.1-.15-.09-.23,0a30.64,30.64,0,0,1,19.37,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M178,142.26c1-2.65,1.82-5.34,2.59-8.06H161.05a31.47,31.47,0,0,1,5.11,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M173.35,153.22c1.27-2.62,2.47-5.3,3.55-8.05h-9.63a31.16,31.16,0,0,1,1.5,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M168.78,156.13a31,31,0,0,1-1.27,7.57c1.56-2.42,3-5,4.37-7.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M81.85,119.72h51.37q2.55-3.09,4.85-6.38A138.18,138.18,0,0,0,139.19,96,136.15,136.15,0,0,0,99.75,0a116.37,116.37,0,0,1,9.06,45.14A116.24,116.24,0,0,1,81.85,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M135.36,131.29c.61-2.55,1.17-5.11,1.64-7.69H81.85c-.07.09-.14-.09-.21,0a38.25,38.25,0,0,1,21.85,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M113.44,142.26h18.78c.87-2.66,1.68-5.34,2.39-8.06H106.93A39.26,39.26,0,0,1,113.44,142.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M128.17,153.22c1.1-2.64,2.14-5.33,3.09-8.05H115.07a38.58,38.58,0,0,1,3,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M119.1,164.19H123c1.37-2.63,2.68-5.32,3.9-8.06h-8.24a39.17,39.17,0,0,1,.53,6.36C119.16,163.06,119.12,163.62,119.1,164.19Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M118.86,167.1a38.43,38.43,0,0,1-1.35,6.55c1.37-2.12,2.65-4.32,3.89-6.55Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 220.61 173.65\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eicon-white\u003c/title\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_2\" data-name=\"Layer 2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1-2\" data-name=\"Layer 1\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M0,119.72H29.57A91.32,91.32,0,0,0,36.64,110c.12-1.87.2-3.75.2-5.65A87.07,87.07,0,0,0,11.59,42.93a74.5,74.5,0,0,1,5.8,28.89A74.4,74.4,0,0,1,0,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M17.2,131.29H33.48c.7-2.56,1.32-5.13,1.81-7.69H0A24.7,24.7,0,0,1,17.2,131.29Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M29.69,142.26c1.08-2.64,2.08-5.32,2.93-8.06H19.56a24.45,24.45,0,0,1,3.69,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.49,145.17H23.8a25.11,25.11,0,0,1,.22,3.15A24.77,24.77,0,0,1,23,155.46,77.67,77.67,0,0,0,28.49,145.17Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M183.78,119.72h35.47a87.38,87.38,0,0,0-23.88-76.79,74.79,74.79,0,0,1-11.59,76.79Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M201,131.29H217.5c.69-2.52,1.29-5.09,1.75-7.69H183.78A24.74,24.74,0,0,1,201,131.29Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M213.64,142.26c1.11-2.63,2.14-5.31,3-8.06h-13.3a24.65,24.65,0,0,1,3.69,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M212.4,145.17h-4.82a25.12,25.12,0,0,1,.21,3.15,24.76,24.76,0,0,1-1,7.14A85.55,85.55,0,0,0,212.4,145.17Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M36.19,119.72H76q2.79-3.36,5.32-6.93a108,108,0,0,0,.66-12A108.89,108.89,0,0,0,50.46,24,93.16,93.16,0,0,1,57.7,60.13,92.93,92.93,0,0,1,36.19,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M78.54,131.29c.65-2.55,1.23-5.11,1.7-7.69h-44c-.08.1-.15-.09-.22,0a30.61,30.61,0,0,1,19.36,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M75.2,142.26c1-2.65,1.83-5.34,2.59-8.06H58.21a31.71,31.71,0,0,1,5.1,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M70.53,153.22c1.27-2.62,2.48-5.3,3.56-8.05H64.43a30.73,30.73,0,0,1,1.49,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.94,156.13a31.46,31.46,0,0,1-1.27,7.57c1.56-2.43,3-5,4.38-7.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M139,119.72h38.34a76.75,76.75,0,0,0,7.11-10.1c.23-2.91.37-5.85.37-8.83A108.86,108.86,0,0,0,153.3,24,93.41,93.41,0,0,1,139,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M181.34,131.29c.65-2.55,1.25-5.12,1.72-7.69H139c-.08.1-.15-.09-.23,0a30.64,30.64,0,0,1,19.37,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M178,142.26c1-2.65,1.82-5.34,2.59-8.06H161.05a31.47,31.47,0,0,1,5.11,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M173.35,153.22c1.27-2.62,2.47-5.3,3.55-8.05h-9.63a31.16,31.16,0,0,1,1.5,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M168.78,156.13a31,31,0,0,1-1.27,7.57c1.56-2.42,3-5,4.37-7.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M81.85,119.72h51.37q2.55-3.09,4.85-6.38A138.18,138.18,0,0,0,139.19,96,136.15,136.15,0,0,0,99.75,0a116.37,116.37,0,0,1,9.06,45.14A116.24,116.24,0,0,1,81.85,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M135.36,131.29c.61-2.55,1.17-5.11,1.64-7.69H81.85c-.07.09-.14-.09-.21,0a38.25,38.25,0,0,1,21.85,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M113.44,142.26h18.78c.87-2.66,1.68-5.34,2.39-8.06H106.93A39.26,39.26,0,0,1,113.44,142.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M128.17,153.22c1.1-2.64,2.14-5.33,3.09-8.05H115.07a38.58,38.58,0,0,1,3,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M119.1,164.19H123c1.37-2.63,2.68-5.32,3.9-8.06h-8.24a39.17,39.17,0,0,1,.53,6.36C119.16,163.06,119.12,163.62,119.1,164.19Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M118.86,167.1a38.43,38.43,0,0,1-1.35,6.55c1.37-2.12,2.65-4.32,3.89-6.55Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.10.4" + }, + "name": "karmada", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2765ff", + "secondaryColor": "#3d74ff", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 220.61 173.65\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#1791ff;}.cls-2{fill:#51adff;}.cls-3{fill:#1781ff;}.cls-4{fill:#51a1ff;}.cls-5{fill:#2765ff;}.cls-6{fill:#508aff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eicon-color\u003c/title\u003e\u003cg id=\"Layer_2\" data-name=\"Layer 2\"\u003e\u003cg id=\"Layer_1-2\" data-name=\"Layer 1\"\u003e\u003cpath class=\"cls-1\" d=\"M0,119.72H29.57A91.32,91.32,0,0,0,36.64,110c.12-1.87.2-3.75.2-5.65A87.07,87.07,0,0,0,11.59,42.93a74.5,74.5,0,0,1,5.8,28.89A74.4,74.4,0,0,1,0,119.72Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M17.2,131.29H33.48c.7-2.56,1.32-5.13,1.81-7.69H0A24.7,24.7,0,0,1,17.2,131.29Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M29.69,142.26c1.08-2.64,2.08-5.32,2.93-8.06H19.56a24.45,24.45,0,0,1,3.69,8.06Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M28.49,145.17H23.8a25.11,25.11,0,0,1,.22,3.15A24.77,24.77,0,0,1,23,155.46,77.67,77.67,0,0,0,28.49,145.17Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M183.78,119.72h35.47a87.38,87.38,0,0,0-23.88-76.79,74.79,74.79,0,0,1-11.59,76.79Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M201,131.29H217.5c.69-2.52,1.29-5.09,1.75-7.69H183.78A24.74,24.74,0,0,1,201,131.29Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M213.64,142.26c1.11-2.63,2.14-5.31,3-8.06h-13.3a24.65,24.65,0,0,1,3.69,8.06Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M212.4,145.17h-4.82a25.12,25.12,0,0,1,.21,3.15,24.76,24.76,0,0,1-1,7.14A85.55,85.55,0,0,0,212.4,145.17Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M36.19,119.72H76q2.79-3.36,5.32-6.93a108,108,0,0,0,.66-12A108.89,108.89,0,0,0,50.46,24,93.16,93.16,0,0,1,57.7,60.13,92.93,92.93,0,0,1,36.19,119.72Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M78.54,131.29c.65-2.55,1.23-5.11,1.7-7.69h-44c-.08.1-.15-.09-.22,0a30.61,30.61,0,0,1,19.36,7.69Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M75.2,142.26c1-2.65,1.83-5.34,2.59-8.06H58.21a31.71,31.71,0,0,1,5.1,8.06Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M70.53,153.22c1.27-2.62,2.48-5.3,3.56-8.05H64.43a30.73,30.73,0,0,1,1.49,8.05Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M65.94,156.13a31.46,31.46,0,0,1-1.27,7.57c1.56-2.43,3-5,4.38-7.57Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M139,119.72h38.34a76.75,76.75,0,0,0,7.11-10.1c.23-2.91.37-5.85.37-8.83A108.86,108.86,0,0,0,153.3,24,93.41,93.41,0,0,1,139,119.72Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M181.34,131.29c.65-2.55,1.25-5.12,1.72-7.69H139c-.08.1-.15-.09-.23,0a30.64,30.64,0,0,1,19.37,7.69Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M178,142.26c1-2.65,1.82-5.34,2.59-8.06H161.05a31.47,31.47,0,0,1,5.11,8.06Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M173.35,153.22c1.27-2.62,2.47-5.3,3.55-8.05h-9.63a31.16,31.16,0,0,1,1.5,8.05Z\"/\u003e\u003cpath class=\"cls-4\" d=\"M168.78,156.13a31,31,0,0,1-1.27,7.57c1.56-2.42,3-5,4.37-7.57Z\"/\u003e\u003cpath class=\"cls-5\" d=\"M81.85,119.72h51.37q2.55-3.09,4.85-6.38A138.18,138.18,0,0,0,139.19,96,136.15,136.15,0,0,0,99.75,0a116.37,116.37,0,0,1,9.06,45.14A116.24,116.24,0,0,1,81.85,119.72Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M135.36,131.29c.61-2.55,1.17-5.11,1.64-7.69H81.85c-.07.09-.14-.09-.21,0a38.25,38.25,0,0,1,21.85,7.69Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M113.44,142.26h18.78c.87-2.66,1.68-5.34,2.39-8.06H106.93A39.26,39.26,0,0,1,113.44,142.26Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M128.17,153.22c1.1-2.64,2.14-5.33,3.09-8.05H115.07a38.58,38.58,0,0,1,3,8.05Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M119.1,164.19H123c1.37-2.63,2.68-5.32,3.9-8.06h-8.24a39.17,39.17,0,0,1,.53,6.36C119.16,163.06,119.12,163.62,119.1,164.19Z\"/\u003e\u003cpath class=\"cls-6\" d=\"M118.86,167.1a38.43,38.43,0,0,1-1.35,6.55c1.37-2.12,2.65-4.32,3.89-6.55Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 220.61 173.65\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eicon-white\u003c/title\u003e\u003cg id=\"Layer_2\" data-name=\"Layer 2\"\u003e\u003cg id=\"Layer_1-2\" data-name=\"Layer 1\"\u003e\u003cpath class=\"cls-1\" d=\"M0,119.72H29.57A91.32,91.32,0,0,0,36.64,110c.12-1.87.2-3.75.2-5.65A87.07,87.07,0,0,0,11.59,42.93a74.5,74.5,0,0,1,5.8,28.89A74.4,74.4,0,0,1,0,119.72Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M17.2,131.29H33.48c.7-2.56,1.32-5.13,1.81-7.69H0A24.7,24.7,0,0,1,17.2,131.29Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M29.69,142.26c1.08-2.64,2.08-5.32,2.93-8.06H19.56a24.45,24.45,0,0,1,3.69,8.06Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M28.49,145.17H23.8a25.11,25.11,0,0,1,.22,3.15A24.77,24.77,0,0,1,23,155.46,77.67,77.67,0,0,0,28.49,145.17Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M183.78,119.72h35.47a87.38,87.38,0,0,0-23.88-76.79,74.79,74.79,0,0,1-11.59,76.79Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M201,131.29H217.5c.69-2.52,1.29-5.09,1.75-7.69H183.78A24.74,24.74,0,0,1,201,131.29Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M213.64,142.26c1.11-2.63,2.14-5.31,3-8.06h-13.3a24.65,24.65,0,0,1,3.69,8.06Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M212.4,145.17h-4.82a25.12,25.12,0,0,1,.21,3.15,24.76,24.76,0,0,1-1,7.14A85.55,85.55,0,0,0,212.4,145.17Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M36.19,119.72H76q2.79-3.36,5.32-6.93a108,108,0,0,0,.66-12A108.89,108.89,0,0,0,50.46,24,93.16,93.16,0,0,1,57.7,60.13,92.93,92.93,0,0,1,36.19,119.72Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M78.54,131.29c.65-2.55,1.23-5.11,1.7-7.69h-44c-.08.1-.15-.09-.22,0a30.61,30.61,0,0,1,19.36,7.69Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M75.2,142.26c1-2.65,1.83-5.34,2.59-8.06H58.21a31.71,31.71,0,0,1,5.1,8.06Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M70.53,153.22c1.27-2.62,2.48-5.3,3.56-8.05H64.43a30.73,30.73,0,0,1,1.49,8.05Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.94,156.13a31.46,31.46,0,0,1-1.27,7.57c1.56-2.43,3-5,4.38-7.57Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M139,119.72h38.34a76.75,76.75,0,0,0,7.11-10.1c.23-2.91.37-5.85.37-8.83A108.86,108.86,0,0,0,153.3,24,93.41,93.41,0,0,1,139,119.72Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M181.34,131.29c.65-2.55,1.25-5.12,1.72-7.69H139c-.08.1-.15-.09-.23,0a30.64,30.64,0,0,1,19.37,7.69Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M178,142.26c1-2.65,1.82-5.34,2.59-8.06H161.05a31.47,31.47,0,0,1,5.11,8.06Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M173.35,153.22c1.27-2.62,2.47-5.3,3.55-8.05h-9.63a31.16,31.16,0,0,1,1.5,8.05Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M168.78,156.13a31,31,0,0,1-1.27,7.57c1.56-2.42,3-5,4.37-7.57Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M81.85,119.72h51.37q2.55-3.09,4.85-6.38A138.18,138.18,0,0,0,139.19,96,136.15,136.15,0,0,0,99.75,0a116.37,116.37,0,0,1,9.06,45.14A116.24,116.24,0,0,1,81.85,119.72Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M135.36,131.29c.61-2.55,1.17-5.11,1.64-7.69H81.85c-.07.09-.14-.09-.21,0a38.25,38.25,0,0,1,21.85,7.69Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M113.44,142.26h18.78c.87-2.66,1.68-5.34,2.39-8.06H106.93A39.26,39.26,0,0,1,113.44,142.26Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M128.17,153.22c1.1-2.64,2.14-5.33,3.09-8.05H115.07a38.58,38.58,0,0,1,3,8.05Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M119.1,164.19H123c1.37-2.63,2.68-5.32,3.9-8.06h-8.24a39.17,39.17,0,0,1,.53,6.36C119.16,163.06,119.12,163.62,119.1,164.19Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M118.86,167.1a38.43,38.43,0,0,1-1.35,6.55c1.37-2.12,2.65-4.32,3.89-6.55Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/karmada/v1.10.4/v1.0.0/model.json b/server/meshmodel/karmada/v1.10.4/v1.0.0/model.json new file mode 100644 index 00000000000..eacea9d9bd1 --- /dev/null +++ b/server/meshmodel/karmada/v1.10.4/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Karmada", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#2765ff", + "secondaryColor": "#3d74ff", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 220.61 173.65\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#1791ff;}.cls-2{fill:#51adff;}.cls-3{fill:#1781ff;}.cls-4{fill:#51a1ff;}.cls-5{fill:#2765ff;}.cls-6{fill:#508aff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eicon-color\u003c/title\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_2\" data-name=\"Layer 2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1-2\" data-name=\"Layer 1\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M0,119.72H29.57A91.32,91.32,0,0,0,36.64,110c.12-1.87.2-3.75.2-5.65A87.07,87.07,0,0,0,11.59,42.93a74.5,74.5,0,0,1,5.8,28.89A74.4,74.4,0,0,1,0,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M17.2,131.29H33.48c.7-2.56,1.32-5.13,1.81-7.69H0A24.7,24.7,0,0,1,17.2,131.29Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M29.69,142.26c1.08-2.64,2.08-5.32,2.93-8.06H19.56a24.45,24.45,0,0,1,3.69,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M28.49,145.17H23.8a25.11,25.11,0,0,1,.22,3.15A24.77,24.77,0,0,1,23,155.46,77.67,77.67,0,0,0,28.49,145.17Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M183.78,119.72h35.47a87.38,87.38,0,0,0-23.88-76.79,74.79,74.79,0,0,1-11.59,76.79Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M201,131.29H217.5c.69-2.52,1.29-5.09,1.75-7.69H183.78A24.74,24.74,0,0,1,201,131.29Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M213.64,142.26c1.11-2.63,2.14-5.31,3-8.06h-13.3a24.65,24.65,0,0,1,3.69,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M212.4,145.17h-4.82a25.12,25.12,0,0,1,.21,3.15,24.76,24.76,0,0,1-1,7.14A85.55,85.55,0,0,0,212.4,145.17Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M36.19,119.72H76q2.79-3.36,5.32-6.93a108,108,0,0,0,.66-12A108.89,108.89,0,0,0,50.46,24,93.16,93.16,0,0,1,57.7,60.13,92.93,92.93,0,0,1,36.19,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M78.54,131.29c.65-2.55,1.23-5.11,1.7-7.69h-44c-.08.1-.15-.09-.22,0a30.61,30.61,0,0,1,19.36,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M75.2,142.26c1-2.65,1.83-5.34,2.59-8.06H58.21a31.71,31.71,0,0,1,5.1,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M70.53,153.22c1.27-2.62,2.48-5.3,3.56-8.05H64.43a30.73,30.73,0,0,1,1.49,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M65.94,156.13a31.46,31.46,0,0,1-1.27,7.57c1.56-2.43,3-5,4.38-7.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M139,119.72h38.34a76.75,76.75,0,0,0,7.11-10.1c.23-2.91.37-5.85.37-8.83A108.86,108.86,0,0,0,153.3,24,93.41,93.41,0,0,1,139,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M181.34,131.29c.65-2.55,1.25-5.12,1.72-7.69H139c-.08.1-.15-.09-.23,0a30.64,30.64,0,0,1,19.37,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M178,142.26c1-2.65,1.82-5.34,2.59-8.06H161.05a31.47,31.47,0,0,1,5.11,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M173.35,153.22c1.27-2.62,2.47-5.3,3.55-8.05h-9.63a31.16,31.16,0,0,1,1.5,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-4\" d=\"M168.78,156.13a31,31,0,0,1-1.27,7.57c1.56-2.42,3-5,4.37-7.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-5\" d=\"M81.85,119.72h51.37q2.55-3.09,4.85-6.38A138.18,138.18,0,0,0,139.19,96,136.15,136.15,0,0,0,99.75,0a116.37,116.37,0,0,1,9.06,45.14A116.24,116.24,0,0,1,81.85,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M135.36,131.29c.61-2.55,1.17-5.11,1.64-7.69H81.85c-.07.09-.14-.09-.21,0a38.25,38.25,0,0,1,21.85,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M113.44,142.26h18.78c.87-2.66,1.68-5.34,2.39-8.06H106.93A39.26,39.26,0,0,1,113.44,142.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M128.17,153.22c1.1-2.64,2.14-5.33,3.09-8.05H115.07a38.58,38.58,0,0,1,3,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M119.1,164.19H123c1.37-2.63,2.68-5.32,3.9-8.06h-8.24a39.17,39.17,0,0,1,.53,6.36C119.16,163.06,119.12,163.62,119.1,164.19Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-6\" d=\"M118.86,167.1a38.43,38.43,0,0,1-1.35,6.55c1.37-2.12,2.65-4.32,3.89-6.55Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 220.61 173.65\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eicon-white\u003c/title\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_2\" data-name=\"Layer 2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1-2\" data-name=\"Layer 1\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M0,119.72H29.57A91.32,91.32,0,0,0,36.64,110c.12-1.87.2-3.75.2-5.65A87.07,87.07,0,0,0,11.59,42.93a74.5,74.5,0,0,1,5.8,28.89A74.4,74.4,0,0,1,0,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M17.2,131.29H33.48c.7-2.56,1.32-5.13,1.81-7.69H0A24.7,24.7,0,0,1,17.2,131.29Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M29.69,142.26c1.08-2.64,2.08-5.32,2.93-8.06H19.56a24.45,24.45,0,0,1,3.69,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.49,145.17H23.8a25.11,25.11,0,0,1,.22,3.15A24.77,24.77,0,0,1,23,155.46,77.67,77.67,0,0,0,28.49,145.17Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M183.78,119.72h35.47a87.38,87.38,0,0,0-23.88-76.79,74.79,74.79,0,0,1-11.59,76.79Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M201,131.29H217.5c.69-2.52,1.29-5.09,1.75-7.69H183.78A24.74,24.74,0,0,1,201,131.29Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M213.64,142.26c1.11-2.63,2.14-5.31,3-8.06h-13.3a24.65,24.65,0,0,1,3.69,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M212.4,145.17h-4.82a25.12,25.12,0,0,1,.21,3.15,24.76,24.76,0,0,1-1,7.14A85.55,85.55,0,0,0,212.4,145.17Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M36.19,119.72H76q2.79-3.36,5.32-6.93a108,108,0,0,0,.66-12A108.89,108.89,0,0,0,50.46,24,93.16,93.16,0,0,1,57.7,60.13,92.93,92.93,0,0,1,36.19,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M78.54,131.29c.65-2.55,1.23-5.11,1.7-7.69h-44c-.08.1-.15-.09-.22,0a30.61,30.61,0,0,1,19.36,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M75.2,142.26c1-2.65,1.83-5.34,2.59-8.06H58.21a31.71,31.71,0,0,1,5.1,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M70.53,153.22c1.27-2.62,2.48-5.3,3.56-8.05H64.43a30.73,30.73,0,0,1,1.49,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.94,156.13a31.46,31.46,0,0,1-1.27,7.57c1.56-2.43,3-5,4.38-7.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M139,119.72h38.34a76.75,76.75,0,0,0,7.11-10.1c.23-2.91.37-5.85.37-8.83A108.86,108.86,0,0,0,153.3,24,93.41,93.41,0,0,1,139,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M181.34,131.29c.65-2.55,1.25-5.12,1.72-7.69H139c-.08.1-.15-.09-.23,0a30.64,30.64,0,0,1,19.37,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M178,142.26c1-2.65,1.82-5.34,2.59-8.06H161.05a31.47,31.47,0,0,1,5.11,8.06Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M173.35,153.22c1.27-2.62,2.47-5.3,3.55-8.05h-9.63a31.16,31.16,0,0,1,1.5,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M168.78,156.13a31,31,0,0,1-1.27,7.57c1.56-2.42,3-5,4.37-7.57Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M81.85,119.72h51.37q2.55-3.09,4.85-6.38A138.18,138.18,0,0,0,139.19,96,136.15,136.15,0,0,0,99.75,0a116.37,116.37,0,0,1,9.06,45.14A116.24,116.24,0,0,1,81.85,119.72Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M135.36,131.29c.61-2.55,1.17-5.11,1.64-7.69H81.85c-.07.09-.14-.09-.21,0a38.25,38.25,0,0,1,21.85,7.69Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M113.44,142.26h18.78c.87-2.66,1.68-5.34,2.39-8.06H106.93A39.26,39.26,0,0,1,113.44,142.26Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M128.17,153.22c1.1-2.64,2.14-5.33,3.09-8.05H115.07a38.58,38.58,0,0,1,3,8.05Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M119.1,164.19H123c1.37-2.63,2.68-5.32,3.9-8.06h-8.24a39.17,39.17,0,0,1,.53,6.36C119.16,163.06,119.12,163.62,119.1,164.19Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M118.86,167.1a38.43,38.43,0,0,1-1.35,6.55c1.37-2.12,2.65-4.32,3.89-6.55Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.10.4" + }, + "name": "karmada", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoBackup.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoBackup.json new file mode 100644 index 00000000000..5961c8bcc91 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoBackup.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoBackup", + "schema": "{\n \"title\": \"Arango Backup\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "backup.arangodb.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Backup", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoBackupPolicy.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoBackupPolicy.json new file mode 100644 index 00000000000..7a2db2802b9 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoBackupPolicy.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoBackupPolicy", + "schema": "{\n \"title\": \"Arango Backup Policy\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "backup.arangodb.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Backup Policy", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoClusterSynchronization.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoClusterSynchronization.json new file mode 100644 index 00000000000..c72dd890346 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoClusterSynchronization.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoClusterSynchronization", + "schema": "{\n \"title\": \"Arango Cluster Synchronization\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "database.arangodb.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Cluster Synchronization", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoDeployment.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoDeployment.json new file mode 100644 index 00000000000..cf717ea31a5 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoDeployment.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoDeployment", + "schema": "{\n \"title\": \"Arango Deployment\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "database.arangodb.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Deployment", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoDeploymentReplication.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoDeploymentReplication.json new file mode 100644 index 00000000000..1ad99a07ad9 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoDeploymentReplication.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoDeploymentReplication", + "schema": "{\n \"title\": \"Arango Deployment Replication\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "replication.database.arangodb.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Deployment Replication", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoJob.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoJob.json new file mode 100644 index 00000000000..5a8b7f93c72 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoJob", + "schema": "{\n \"title\": \"Arango Job\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "apps.arangodb.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLBatchJob.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLBatchJob.json new file mode 100644 index 00000000000..00e2046cb24 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLBatchJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoMLBatchJob", + "schema": "{\n \"title\": \"Arango ML Batch Job\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "ml.arangodb.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Arango ML Batch Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLCronJob.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLCronJob.json new file mode 100644 index 00000000000..a631076f397 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLCronJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoMLCronJob", + "schema": "{\n \"title\": \"Arango ML Cron Job\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "ml.arangodb.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Arango ML Cron Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLExtension.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLExtension.json new file mode 100644 index 00000000000..1bce899bb9c --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLExtension.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoMLExtension", + "schema": "{\n \"title\": \"Arango ML Extension\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "ml.arangodb.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Arango ML Extension", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLStorage.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLStorage.json new file mode 100644 index 00000000000..610eab3ff97 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMLStorage.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoMLStorage", + "schema": "{\n \"title\": \"Arango ML Storage\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "ml.arangodb.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Arango ML Storage", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMember.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMember.json new file mode 100644 index 00000000000..ec4a40a85dd --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoMember.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "ArangoMember", + "schema": "{\n \"title\": \"Arango Member\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "database.arangodb.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Member", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoProfile.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoProfile.json new file mode 100644 index 00000000000..e1767585b7a --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoProfile.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoProfile", + "schema": "{\n \"title\": \"Arango Profile\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "scheduler.arangodb.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Profile", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoTask.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoTask.json new file mode 100644 index 00000000000..209999e30e9 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/ArangoTask.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ArangoTask", + "schema": "{\n \"title\": \"Arango Task\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "database.arangodb.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Arango Task", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/GraphAnalyticsEngine.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/GraphAnalyticsEngine.json new file mode 100644 index 00000000000..53bf4be726e --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/components/GraphAnalyticsEngine.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "GraphAnalyticsEngine", + "schema": "{\n \"title\": \"Graph Analytics Engine\",\n \"type\": \"object\",\n \"x-kubernetes-preserve-unknown-fields\": true\n}", + "version": "analytics.arangodb.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Graph Analytics Engine", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/arangodb/kube-arangodb/master/chart/kube-arangodb/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/model.json b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/model.json new file mode 100644 index 00000000000..0cae0e0afc8 --- /dev/null +++ b/server/meshmodel/kube-arangodb/1.2.42/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "App Definition and Development" + }, + "displayName": "ArangoDB Kubernetes Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "1.2.42" + }, + "name": "kube-arangodb", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/45.7.1/v1.0.0/components/PrometheusConnection.json b/server/meshmodel/kube-prometheus-stack/45.7.1/v1.0.0/components/PrometheusConnection.json index e2cc2c2c759..684fcf5078b 100644 --- a/server/meshmodel/kube-prometheus-stack/45.7.1/v1.0.0/components/PrometheusConnection.json +++ b/server/meshmodel/kube-prometheus-stack/45.7.1/v1.0.0/components/PrometheusConnection.json @@ -137,7 +137,18 @@ "genealogy": "", "isAnnotation": false, "isNamespaced": true, - "published": false + "published": false, + "transitions": { + "connected": [ + "disconnected", + "deleted" + ], + "deleted": [], + "disconnected": [ + "connected", + "deleted" + ] + } }, "model": { "category": { diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/CacheBackend.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/CacheBackend.json new file mode 100644 index 00000000000..0f2979a8228 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/CacheBackend.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "CacheBackend", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"cacheEngine\": {\n \"properties\": {\n \"fluid\": {\n \"properties\": {\n \"alluxioRuntime\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tieredStorage\": {\n \"items\": {\n \"properties\": {\n \"cachePath\": {\n \"type\": \"string\"\n },\n \"mediumType\": {\n \"type\": \"string\"\n },\n \"quota\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"dataset\": {\n \"properties\": {\n \"dataSources\": {\n \"items\": {\n \"properties\": {\n \"location\": {\n \"type\": \"string\"\n },\n \"subDirName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"properties\": {\n \"idleTime\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Cache Backend\",\n \"type\": \"object\"\n}", + "version": "cache.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Cache Backend", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Cron.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Cron.json new file mode 100644 index 00000000000..2481f057b18 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Cron.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Cron", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n },\n \"template\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"workload\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"schedule\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Cron\",\n \"type\": \"object\"\n}", + "version": "apps.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Cron", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ElasticBatchJob.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ElasticBatchJob.json new file mode 100644 index 00000000000..f3b5b8ce3cf --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ElasticBatchJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ElasticBatchJob", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"elasticBatchReplicaSpecs\": {\n \"additionalProperties\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"spotReplicaSpec\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"spotReplicaNumber\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"successPolicy\": {\n \"type\": \"string\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"elasticBatchReplicaSpecs\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Elastic Batch Job\",\n \"type\": \"object\"\n}", + "version": "inference.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Elastic Batch Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ElasticDLJob.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ElasticDLJob.json new file mode 100644 index 00000000000..7d99de49b17 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ElasticDLJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ElasticDLJob", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"elasticdlReplicaSpecs\": {\n \"additionalProperties\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"spotReplicaSpec\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"spotReplicaNumber\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"elasticdlReplicaSpecs\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Elastic DL Job\",\n \"type\": \"object\"\n}", + "version": "training.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Elastic DL Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Inference.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Inference.json new file mode 100644 index 00000000000..04506753131 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Inference.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Inference", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"framework\": {\n \"type\": \"string\"\n },\n \"predictors\": {\n \"items\": {\n \"properties\": {\n \"autoScale\": {\n \"properties\": {\n \"autoScaler\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"maxReplicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minReplicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"autoScaler\"\n ],\n \"type\": \"object\"\n },\n \"batching\": {\n \"properties\": {\n \"batchSize\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"batchSize\"\n ],\n \"type\": \"object\"\n },\n \"modelPath\": {\n \"type\": \"string\"\n },\n \"modelVersion\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"trafficWeight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\",\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"framework\",\n \"predictors\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Inference\",\n \"type\": \"object\"\n}", + "version": "serving.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Inference", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/MPIJob.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/MPIJob.json new file mode 100644 index 00000000000..0241e17c8bc --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/MPIJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "MPIJob", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"gpus\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"gpusPerNode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"launcherOnMaster\": {\n \"type\": \"boolean\"\n },\n \"mainContainer\": {\n \"type\": \"string\"\n },\n \"mpiDistribution\": {\n \"type\": \"string\"\n },\n \"mpiReplicaSpecs\": {\n \"additionalProperties\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"spotReplicaSpec\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"spotReplicaNumber\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"processingResourceType\": {\n \"type\": \"string\"\n },\n \"processingUnits\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"processingUnitsPerNode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"runPolicy\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"slotsPerWorker\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"mpiReplicaSpecs\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"MPI Job\",\n \"type\": \"object\"\n}", + "version": "training.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "MPI Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/MarsJob.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/MarsJob.json new file mode 100644 index 00000000000..e34012eb3ca --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/MarsJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "MarsJob", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"marsReplicaSpecs\": {\n \"additionalProperties\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"spotReplicaSpec\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"spotReplicaNumber\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"webHost\": {\n \"type\": \"string\"\n },\n \"workerMemoryTuningPolicy\": {\n \"properties\": {\n \"lockFreeFileIO\": {\n \"type\": \"boolean\"\n },\n \"plasmaStore\": {\n \"type\": \"string\"\n },\n \"spillDirs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"workerCachePercentage\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"workerCacheSize\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"marsReplicaSpecs\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Mars Job\",\n \"type\": \"object\"\n}", + "version": "training.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Mars Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Model.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Model.json new file mode 100644 index 00000000000..ca9a2f38ecf --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Model.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Model", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Model\",\n \"type\": \"object\"\n}", + "version": "model.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Model", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ModelVersion.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ModelVersion.json new file mode 100644 index 00000000000..0fb147491a7 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/ModelVersion.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ModelVersion", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"createdBy\": {\n \"type\": \"string\"\n },\n \"imageRepo\": {\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"type\": \"string\"\n },\n \"modelName\": {\n \"type\": \"string\"\n },\n \"storage\": {\n \"properties\": {\n \"AWSEfs\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"volumeHandle\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"localStorage\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"nfs\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Model Version\",\n \"type\": \"object\"\n}", + "version": "model.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Model Version", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Notebook.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Notebook.json new file mode 100644 index 00000000000..43264865d07 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/Notebook.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Notebook", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Notebook\",\n \"type\": \"object\"\n}", + "version": "notebook.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Notebook", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/PyTorchJob.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/PyTorchJob.json new file mode 100644 index 00000000000..0e98ca3bfc5 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/PyTorchJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PyTorchJob", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cacheBackend\": {\n \"properties\": {\n \"cacheEngine\": {\n \"properties\": {\n \"fluid\": {\n \"properties\": {\n \"alluxioRuntime\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tieredStorage\": {\n \"items\": {\n \"properties\": {\n \"cachePath\": {\n \"type\": \"string\"\n },\n \"mediumType\": {\n \"type\": \"string\"\n },\n \"quota\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"dataset\": {\n \"properties\": {\n \"dataSources\": {\n \"items\": {\n \"properties\": {\n \"location\": {\n \"type\": \"string\"\n },\n \"subDirName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"properties\": {\n \"idleTime\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"modelVersion\": {\n \"properties\": {\n \"createdBy\": {\n \"type\": \"string\"\n },\n \"imageRepo\": {\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"type\": \"string\"\n },\n \"modelName\": {\n \"type\": \"string\"\n },\n \"storage\": {\n \"properties\": {\n \"AWSEfs\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"volumeHandle\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"localStorage\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"nfs\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pytorchReplicaSpecs\": {\n \"additionalProperties\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"spotReplicaSpec\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"spotReplicaNumber\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"pytorchReplicaSpecs\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Py Torch Job\",\n \"type\": \"object\"\n}", + "version": "training.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Py Torch Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/TFJob.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/TFJob.json new file mode 100644 index 00000000000..c603e8223dc --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/TFJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "TFJob", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cacheBackend\": {\n \"properties\": {\n \"cacheEngine\": {\n \"properties\": {\n \"fluid\": {\n \"properties\": {\n \"alluxioRuntime\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tieredStorage\": {\n \"items\": {\n \"properties\": {\n \"cachePath\": {\n \"type\": \"string\"\n },\n \"mediumType\": {\n \"type\": \"string\"\n },\n \"quota\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"dataset\": {\n \"properties\": {\n \"dataSources\": {\n \"items\": {\n \"properties\": {\n \"location\": {\n \"type\": \"string\"\n },\n \"subDirName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"properties\": {\n \"idleTime\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"modelVersion\": {\n \"properties\": {\n \"createdBy\": {\n \"type\": \"string\"\n },\n \"imageRepo\": {\n \"type\": \"string\"\n },\n \"imageTag\": {\n \"type\": \"string\"\n },\n \"modelName\": {\n \"type\": \"string\"\n },\n \"storage\": {\n \"properties\": {\n \"AWSEfs\": {\n \"properties\": {\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"volumeHandle\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"localStorage\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"nfs\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"successPolicy\": {\n \"type\": \"string\"\n },\n \"tfReplicaSpecs\": {\n \"additionalProperties\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"spotReplicaSpec\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"spotReplicaNumber\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"tfReplicaSpecs\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"TF Job\",\n \"type\": \"object\"\n}", + "version": "training.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "TF Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/XDLJob.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/XDLJob.json new file mode 100644 index 00000000000..c4168ee2512 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/XDLJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "XDLJob", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"minFinishWorkNum\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minFinishWorkRate\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"xdlReplicaSpecs\": {\n \"additionalProperties\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"spotReplicaSpec\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"spotReplicaNumber\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"xdlReplicaSpecs\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"XDL Job\",\n \"type\": \"object\"\n}", + "version": "training.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "XDL Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/XGBoostJob.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/XGBoostJob.json new file mode 100644 index 00000000000..1efd42ad07d --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/components/XGBoostJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "XGBoostJob", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"cleanPodPolicy\": {\n \"type\": \"string\"\n },\n \"cronPolicy\": {\n \"properties\": {\n \"concurrencyPolicy\": {\n \"type\": \"string\"\n },\n \"deadline\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"historyLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"schedule\": {\n \"type\": \"string\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"schedule\"\n ],\n \"type\": \"object\"\n },\n \"schedulingPolicy\": {\n \"properties\": {\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"xgbReplicaSpecs\": {\n \"additionalProperties\": {\n \"properties\": {\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"spotReplicaSpec\": {\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"spotReplicaNumber\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"xgbReplicaSpecs\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"XG Boost Job\",\n \"type\": \"object\"\n}", + "version": "training.kubedl.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "XG Boost Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "source_uri": "git://github.com/kubedl-io/kubedl/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "svgColor": "\u003csvg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cpath d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"/\u003e\u003cpath d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 102.088 107.812\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003cpath class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubedl/v0.5.0/v1.0.0/model.json b/server/meshmodel/kubedl/v0.5.0/v1.0.0/model.json new file mode 100644 index 00000000000..676d2fef7b9 --- /dev/null +++ b/server/meshmodel/kubedl/v0.5.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Provisioning" + }, + "displayName": "Kubedl", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#2a427f", + "secondaryColor": "#6F87C4", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M93.108 385.341c-1.826-.869-1.182-.665-1.885-2.482-.96-2.482-4.774-6.663-7.393-4.663-2.706 2.065.71 5.976 4.019 7.502 1.897.876 1.82-.319 2.76 1.768l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77 55.442 55.442 0 0 0-.822 11.802 24.666 24.666 0 0 0 3.097-2.563c5.523-4.867 3.988-1.755 4.773-6.372a36.897 36.897 0 0 1 1.046-4.74 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.63-10.054 38.183 38.183 0 0 1 8.253-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.392c.059 1.167 2.654 4.097 3.48 4.581l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.472c.855-.078 3.804-1.23 4.86-1.531 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.69 1.429-.366 3.685-.88 4.769-1.738a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.503-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.152a41.505 41.505 0 0 1-1.41-4.177c18.587 1.82 34.853 12.613 37.686 32.175 4.95-.12 4.46-.464 7.523-.664.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.075c-.323-.38-.946-.946-1.214-1.321.397-1.751.975-1.398 2.473-1.88 2.547-.822 7.17-4.958 4.436-7.54-2.358-2.227-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.421-1.287-1.049-1.985-1.592-10.516-8.186-25.961-9.193-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.039 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.377-.363 1.357-.3 1.63-1.81 1.71-5.813.306-14.562 3.37-19.305 5.958a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.217c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill-rule:evenodd;fill:#487abd\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M155.34 440.382c-2.155 5.673-4.259 5.56-7.095 7.454-.818.547-1.406 2.269-2.729 1.728-1.6-2.128 2.79-4.083 4.049-4.718 3.764-1.9 4.292-4.529 5.126-8.747.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.8-2.046 2.707-1.667 3.67-2.884 6.873Zm-2.2 10.732a14.41 14.41 0 0 0 3.443-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.566-1.734 2.158-2.353 2.403-2.99 5.456-1.988 9.51-5.152 6.811-8.797 10.471a1.752 1.752 0 0 0-.557 1.598c.153.91-.008.248.234.558 1.271.978 1.908-1.102 3.303-1.868Zm-10.507-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.398a30.526 30.526 0 0 1-4.47 6.234 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.731c-.625-.947-1.142-2.051-1.779-2.958-.884.205-1.815 1.071-2.763 1.41l2.15-10.925 8.184 7.786-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.717.266-9.85-.144-10.805-1.737-.593-11.3-1.815-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.11 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.59c4.811 5.568 11.474 8.268 18.739 9.405 6.877 1.077 16.062-1.471 21.495-5.82Zm-.024-13.858c-.238 2.35-6.19 9.239-11.234 10.127-3.57.63-4.783-2.621-5-5.476-.238-3.142-.222-7.132-.157-10.418 1.354.004 10.353 2.13 15.744 2.265-.036.671-2.007 2.03-2.862 3.106l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.878 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.072-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.723.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.904 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.225-3.699-2.395-5.356-4.143-6.342-9.633-.94-5.228-1.284-3.833-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.734.4-2.225 2.485-2.626.055 2.328-1.763 3.405 1.145 7.619ZM77.7 427.14c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.8 1.263c1.479.733 3.254.678 5.083.831 4.179.35 5.138 2.172 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.295c.032-.039.072-.1.098-.133.027-.035.067-.093.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.093-13.11 1.674-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.38 1.599-.656Z\" transform=\"translate(-76.1 -361.118)\" style=\"fill:#2a427f;fill-rule:evenodd\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 102.088 107.812\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;fill-rule:evenodd}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M263.412 392.664c-1.826-.87-1.182-.666-1.885-2.483-.96-2.482-4.774-6.662-7.393-4.663-2.706 2.065.71 5.977 4.019 7.503 1.897.875 1.82-.32 2.76 1.767l-2.922 3.43a38.942 38.942 0 0 0-2.675 3.6 46.535 46.535 0 0 0-7.493 17.77A55.442 55.442 0 0 0 247 431.39a24.666 24.666 0 0 0 3.097-2.563c5.523-4.866 3.988-1.755 4.773-6.371a36.897 36.897 0 0 1 1.046-4.741 40.849 40.849 0 0 1 7.879-14.785 39.75 39.75 0 0 1 12.631-10.054 38.183 38.183 0 0 1 8.252-3.03c2.226-.516 7.817-1.406 10.124-1.062l1.594 24.99-25.5.393c.06 1.166 2.654 4.096 3.48 4.58l-7.646 2.576a45.566 45.566 0 0 0-6.903 3.473c.855-.078 3.804-1.23 4.86-1.532 13.724-3.913 27.544-1.399 40.873.471 11.886 1.668 22.794 4.792 34.884 1.691 1.429-.366 3.685-.881 4.769-1.739a15.951 15.951 0 0 0 3.278-3.294c-4.55 1.577-3.684 1.504-8.727 2.387-7.047 1.235-14.1.192-21.004-.78-1.547-.217-3.16-.559-4.65-.854-2.813-.558-2.322.368-3.72-2.055-5.331-9.245-9.346-16.08-13.28-26.151a41.505 41.505 0 0 1-1.41-4.178c18.587 1.82 34.853 12.613 37.686 32.176 4.95-.12 4.46-.465 7.523-.665.427-2.822-3.42-11.786-5.02-14.647a49.834 49.834 0 0 0-3.907-5.982l-3.315-4.074c-.323-.38-.946-.947-1.214-1.322.397-1.75.975-1.398 2.473-1.88 2.547-.821 7.17-4.958 4.436-7.54-2.358-2.226-6.325 1.777-7.46 4.541-.539 1.31-.444 2.09-1.946 2.507-.58-.42-1.287-1.049-1.985-1.592-10.516-8.186-25.96-9.192-26.456-9.56a2.921 2.921 0 0 1-.49-1.32c-.373-2.038 2.037-2.781 1.38-7.432-.94-6.658-8.17-3.25-5.024 4.798.57 1.46 1.204 1.299.915 2.378-.363 1.356-.299 1.63-1.81 1.71-5.813.305-14.562 3.37-19.305 5.957a76.664 76.664 0 0 0-4.536 2.669 28.024 28.024 0 0 0-4.234 3.18Zm17.36 21.216c.124-.901 2.61-4.69 3.344-5.934 1.246-2.114 9.838-16.535 10.165-16.638l-.618 21.545c-1.13.014-2.153-.374-3.442-.449a21.525 21.525 0 0 0-9.45 1.476Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M325.643 447.704c-2.154 5.673-4.258 5.56-7.094 7.454-.818.547-1.406 2.269-2.729 1.729-1.6-2.129 2.79-4.084 4.05-4.72 3.763-1.898 4.291-4.528 5.125-8.746.784-3.969 3.826-3.92 4.686-8.966l1.956-.424c.043 3.198-1.564 4.758-3.11 6.801-2.046 2.706-1.667 3.67-2.884 6.872Zm-2.198 10.732a14.41 14.41 0 0 0 3.442-2.138 14.586 14.586 0 0 0 3.839-7.321c.946-4.02 2.623-4.604 4.104-7.061 1.85-3.072.922-5.53.939-9.484-.786.15-1.928.476-2.083 1.223-.513 2.47 1.744 4.61-1.434 8.567-1.734 2.157-2.353 2.402-2.99 5.455-1.988 9.51-5.152 6.811-8.797 10.472a1.752 1.752 0 0 0-.557 1.597c.153.91-.008.248.234.558 1.271.978 1.908-1.101 3.303-1.868Zm-10.508-5.84a29.75 29.75 0 0 0 6.574-7.458c2.543-3.892 2.82-6.026 4.329-9.611l-5.175.146 1.102 5.785-2.733-1.397a30.526 30.526 0 0 1-4.47 6.233 22.624 22.624 0 0 1-4.736 3.908 24.03 24.03 0 0 1-6.658 3.05c-5.256 1.513-2.155-.267-6.307 2.719-.452.325-.032.077-.505.3-.859-.336-1.927-1.427-2.972-1.987-1.648-.883-4.68-.35-10.538-4.038a24.477 24.477 0 0 1-5.263-4.472l-2.128-2.73c-.625-.948-1.142-2.052-1.779-2.959-.884.205-1.815 1.071-2.763 1.41l2.15-10.924 8.184 7.785-3.56.385c.392 2.452 6.772 9.86 11.64 10.188 3.546.238 4.654-3.027 4.792-6.077.078-1.716.266-9.85-.144-10.805-1.737-.592-11.3-1.814-13.092-2.041-4.032-.51-10.305-.959-14.466-.37-.109 2.298 1.99 8.805 2.862 10.785a31.607 31.607 0 0 0 5.422 8.591c4.811 5.567 11.474 8.268 18.74 9.405 6.876 1.076 16.06-1.472 21.494-5.82Zm-.024-13.858c-.238 2.35-6.19 9.24-11.234 10.127-3.57.63-4.783-2.621-5-5.475-.238-3.142-.222-7.132-.157-10.419 1.354.004 10.353 2.13 15.744 2.266-.036.67-2.007 2.028-2.862 3.105l3.509.396Zm-51.158-1.637c3.09 4.7-.266 8.879 5.726 12.649.899.565 5.452 3.392 3.528 4.863-1.12 1.073-1.225-1.025-3.9-2.703-6.5-4.075-4.27-9.477-7.236-14.16-1.407-2.22-2.654-3.715-2.567-6.955l2.11-.488c-.119 3.724.616 4.173 2.339 6.794Zm-5.51 1.917c2.695 3.905 1.74 3.162 2.457 7.253.528 3.01 1.143 4.8 3.582 6.34 2.093 1.322 4.804 2.641 4.186 5.218-2.207.244-1.638-1.193-3.231-2.224-3.699-2.396-5.356-4.144-6.342-9.634-.94-5.228-1.284-3.832-3.267-7.568a8.074 8.074 0 0 1-1.015-4.378c.145-1.733.4-2.225 2.485-2.625.055 2.327-1.763 3.404 1.145 7.618Zm-8.241-4.556c-.274 4.882 1.047 5.266 3.124 8.41 3.133 4.745.843 5.486 1.903 10.159 1.285 5.67 7.691 4.142 9.52 8.287.912 2.069 1.677 4.117 3.304 5.712l1.801 1.263c1.478.733 3.253.678 5.082.831 4.179.35 5.138 2.173 7.708 4.38 3.127 2.685 5.011 2.246 9.159 1.492 2.756-.501 1.957-.893 4.697-.043 3.548 1.1 6.326 2.239 9.718.064 1.71-1.096 2.325-1.841 3.38-2.572 3.21-2.222 6.58-.669 10.287-1.75 2.8-.816 4.483-3.899 5.717-6.2 2.367-4.413 8.482-2.003 10.375-7.603.692-2.045.291-3.236.569-5.364.406-3.111 3.104-5.297 4.696-7.38 2.634-3.446.936-5.884 1.152-10.304.047-.96.164-1.76.253-2.693.118-1.25.038-1.424.99-2.062a25.538 25.538 0 0 0 1.755-1.308l1.472-1.294c.032-.04.072-.101.098-.134.027-.035.067-.092.098-.14a18.375 18.375 0 0 0-2.717 1.038c-1.022.394-1.792.586-2.9.918-6.99 2.094-13.11 1.675-20.223.95-22.576-2.303-44.622-12.096-66.277.91-1.276.766-5.89 4.061-6.34 5.089.797-.115.901-.379 1.599-.656Z\" transform=\"translate(-246.404 -368.44)\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.5.0" + }, + "name": "kubedl", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyCheck.json b/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyCheck.json new file mode 100644 index 00000000000..77c7f2c5d05 --- /dev/null +++ b/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyCheck.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KuberhealthyCheck", + "schema": "{\n \"description\": \"KuberhealthyCheck represents the data in the CRD for configuring an external check for Kuberhealthy\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Spec holds the desired state of the KuberhealthyCheck (from the client).\",\n \"properties\": {\n \"extraAnnotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"extraLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"podSpec\": {\n \"description\": \"PodSpec is a description of a pod.\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod. Defaults to \\\"ClusterFirst\\\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext is not allowed for ephemeral containers.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and \\\"system-cluster-critical\\\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \\\"True\\\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\". If not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number of pods into each bucket. It's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \\\"Unsatisfiable\\\" for an incoming pod if and only if every possible node assigment for that pod would violate \\\"MaxSkew\\\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"Specify \\\"true\\\" to force and set the ReadOnly property in VolumeMounts to \\\"true\\\". If omitted, the default is \\\"false\\\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"The Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"The URI the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"Share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"Optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"description\": \"volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"ConfigMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"description\": \"CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"Specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"DownwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"What type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time. \\n This is a beta feature and only available when the GenericEphemeralVolume feature gate is enabled.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) * An existing custom resource that implements data population (Alpha) In order to use custom resource types that implement data population, the AnyVolumeDataSource feature gate must be enabled. If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"A label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"Driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional: Extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"Repository URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"Commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"Target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"description\": \"iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"VolumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"Items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"description\": \"information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"Volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"The host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"The name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"description\": \"Flag to enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"The ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"The name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"The name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"Storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"Path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n },\n \"runInterval\": {\n \"type\": \"string\"\n },\n \"timeout\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"podSpec\",\n \"runInterval\",\n \"timeout\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kuberhealthy Check\",\n \"type\": \"object\"\n}", + "version": "comcast.github.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Kuberhealthy Check", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kuberhealthy/kuberhealthy/master/deploy/helm/kuberhealthy/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kuberhealthy", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#39509f", + "secondaryColor": "#4d62a9", + "shape": "circle", + "source_uri": "git://github.com/kuberhealthy/kuberhealthy/master/deploy/helm/kuberhealthy/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 200 200\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#39509f;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 200 200\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v2.8.0-rc2" + }, + "name": "kuberhealthy", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#39509f", + "secondaryColor": "#4d62a9", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#39509f;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyJob.json b/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyJob.json new file mode 100644 index 00000000000..a98e27a9755 --- /dev/null +++ b/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KuberhealthyJob", + "schema": "{\n \"description\": \"KuberhealthyJob represents the data in the CRD for configuring an external checker job for Kuberhealthy\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Spec holds the desired state of the KuberhealthyJob (from the client).\",\n \"properties\": {\n \"extraAnnotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"extraLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"phase\": {\n \"description\": \"JobPhase is a label for the condition of the job at the current time.\",\n \"type\": \"string\"\n },\n \"podSpec\": {\n \"description\": \"PodSpec is a description of a pod.\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"description\": \"If specified, the pod's scheduling constraints\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\"\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"description\": \"List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"description\": \"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\n \"properties\": {\n \"nameservers\": {\n \"description\": \"A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.\",\n \"items\": {\n \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Required.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"description\": \"A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Set DNS policy for the pod. Defaults to \\\"ClusterFirst\\\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\",\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"description\": \"EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.\",\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"description\": \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.\",\n \"items\": {\n \"description\": \"An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports are not allowed for ephemeral containers.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"readinessProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext is not allowed for ephemeral containers.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Probes are not allowed for ephemeral containers.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"description\": \"If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.\",\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"description\": \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.\",\n \"items\": {\n \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n \"properties\": {\n \"hostnames\": {\n \"description\": \"Hostnames for the above IP address.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"description\": \"Use the host's ipc namespace. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"description\": \"Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"description\": \"Use the host's pid namespace. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"description\": \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"description\": \"NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.\",\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.\",\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and \\\"system-cluster-critical\\\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.\",\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"description\": \"If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \\\"True\\\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md\",\n \"items\": {\n \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n \"properties\": {\n \"conditionType\": {\n \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"restartPolicy\": {\n \"description\": \"Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"description\": \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.\",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"description\": \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\\\\\SYSTEM\\\\\\\\CurrentControlSet\\\\\\\\Services\\\\\\\\Tcpip\\\\\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.\",\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"description\": \"Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.\",\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"description\": \"If specified, the fully qualified Pod hostname will be \\\"\\u003chostname\\u003e.\\u003csubdomain\\u003e.\\u003cpod namespace\\u003e.svc.\\u003ccluster domain\\u003e\\\". If not specified, the pod will not have a domainname at all.\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"If specified, the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number of pods into each bucket. It's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \\\"Unsatisfiable\\\" for an incoming pod if and only if every possible node assigment for that pod would violate \\\"MaxSkew\\\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"Specify \\\"true\\\" to force and set the ReadOnly property in VolumeMounts to \\\"true\\\". If omitted, the default is \\\"false\\\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"The Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"The URI the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"Share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"Optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"description\": \"volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"ConfigMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"description\": \"CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"Specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"DownwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"What type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time. \\n This is a beta feature and only available when the GenericEphemeralVolume feature gate is enabled.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) * An existing custom resource that implements data population (Alpha) In order to use custom resource types that implement data population, the AnyVolumeDataSource feature gate must be enabled. If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"A label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"Driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Optional: Extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"Repository URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"Commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"Target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"description\": \"iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"VolumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"Items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"description\": \"information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"Group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"Volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"The host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"The name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"description\": \"Flag to enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"The ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"The name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"The name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"Storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"Path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n },\n \"timeout\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"podSpec\",\n \"timeout\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kuberhealthy Job\",\n \"type\": \"object\"\n}", + "version": "comcast.github.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Kuberhealthy Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kuberhealthy/kuberhealthy/master/deploy/helm/kuberhealthy/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kuberhealthy", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#39509f", + "secondaryColor": "#4d62a9", + "shape": "circle", + "source_uri": "git://github.com/kuberhealthy/kuberhealthy/master/deploy/helm/kuberhealthy/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 200 200\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#39509f;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 200 200\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v2.8.0-rc2" + }, + "name": "kuberhealthy", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#39509f", + "secondaryColor": "#4d62a9", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#39509f;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyState.json b/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyState.json new file mode 100644 index 00000000000..7c9fbd12998 --- /dev/null +++ b/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/components/KuberhealthyState.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KuberhealthyState", + "schema": "{\n \"description\": \"KuberhealthyState represents the data in the CRD for configuring an the state of khjobs or khchecks for Kuberhealthy\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Spec holds the desired state of the KuberhealthyState (from the client).\",\n \"properties\": {\n \"AuthoritativePod\": {\n \"type\": \"string\"\n },\n \"Errors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"LastRun\": {\n \"format\": \"date-time\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"Namespace\": {\n \"type\": \"string\"\n },\n \"Node\": {\n \"type\": \"string\"\n },\n \"OK\": {\n \"type\": \"boolean\"\n },\n \"RunDuration\": {\n \"type\": \"string\"\n },\n \"khWorkload\": {\n \"description\": \"KHWorkload is used to describe the different types of kuberhealthy workloads: KhCheck or KHJob\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"uuid\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"AuthoritativePod\",\n \"Errors\",\n \"Namespace\",\n \"Node\",\n \"OK\",\n \"RunDuration\",\n \"uuid\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kuberhealthy State\",\n \"type\": \"object\"\n}", + "version": "comcast.github.io/v1" + }, + "configuration": null, + "description": "", + "displayName": "Kuberhealthy State", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kuberhealthy/kuberhealthy/master/deploy/helm/kuberhealthy/crds" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kuberhealthy", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#39509f", + "secondaryColor": "#4d62a9", + "shape": "circle", + "source_uri": "git://github.com/kuberhealthy/kuberhealthy/master/deploy/helm/kuberhealthy/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 200 200\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#39509f;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 200 200\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v2.8.0-rc2" + }, + "name": "kuberhealthy", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#39509f", + "secondaryColor": "#4d62a9", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#39509f;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/model.json b/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/model.json new file mode 100644 index 00000000000..48ace59d816 --- /dev/null +++ b/server/meshmodel/kuberhealthy/v2.8.0-rc2/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kuberhealthy", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#39509f", + "secondaryColor": "#4d62a9", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 200 200\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#39509f;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 200 200\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M162.6936,33.7683C143.94688,26.76337,127.43143,32.51,112.957,45.04809c-3.21262,2.78287-4.84626,3.6438-8.3228.34919-5.66616-5.36978-11.62165-10.67-19.09866-13.51585-16.59018-6.31442-31.10506-1.66-43.23674,10.00192C29.74638,53.94989,26.01,69.084,30.22592,86.09322c.587,2.36826,1.97572,2.753,4.06835,2.72307,5.79569-.08295,11.60885-.28446,17.38467.06446,3.77032.22775,5.66651-1.10821,7.24659-4.4783,3.95868-8.44335,8.349-16.68471,12.76835-25.40609,4.45035,13.20619,8.67172,25.73309,13.6134,40.39729l9.7245-13.747,16.29695.83524,7.52338,14.6842,3.36235,7.06432,1.11759,2.34792c2.72637-8.05005,5.4717-18.45041,8.17375-26.50861,2.72376-8.12306,5.40444-16.26051,8.356-25.15046,5.58657,9.32669,13.36613,22.29382,18.47048,30.93608l24.42419-1.0247c2.44128.04007,3.46825-.73757,4.25884-3.19283C193.44652,65.665,182.41,41.1355,162.6936,33.7683Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.04227,95.56949l-2.95727-4.9051-7.23665-12.00345c-6.22865,18.70912-12.11311,36.38415-18.2804,54.90888-5.27566-12.18278-12.28559-27.74935-17.20569-38.98976-.05411-.12363-.11151-.25405-.16514-.37666l-.61168-.0124-3.73346-.07548-3.16927-.064s-.15082.2272-.41748.62852c-1.97975,2.97939-10.56154,15.88775-14.74153,22.06257-.12494-.36358-.25673-.71894-.383-1.08088C79.057,103.963,74.28133,93.11369,70.22128,81.29942l-2.21176,3.677-5.90932,9.8241-1.202,1.99832c-.72524.12069-1.78419.215-3.05268.28926-3.10953.182-7.51337.23987-11.6048.24467q-.95831.00112-1.88516-.00144c-2.52458-.0063-4.815-.02925-6.44963-.05028-1.55788-.02007-2.52224-.03822-2.52224-.03822s.49968.58078,1.31006,1.51836c3.05289,3.532,10.58284,12.2058,13.10926,14.767.1472.14925.28358.28522.39482.39063,11.37972,10.77963,20.57838,19.4269,29.954,28.25164,7.94326,7.47645,16.01324,15.08,25.64808,24.21925,2.15792,2.04694,3.36907,2.36716,5.71932.13329,21.12163-20.076,42.39019-39.99782,63.58662-59.99549a30.29685,30.29685,0,0,0,6.8267-9.08729c-8.84412,0-20.38338.52235-28.32383.72771Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M175.89027,31.607c-18.36143-13.31043-42.90316-12.26449-62.16258,2.01208-4.01671,2.97748-6.72375,3.62073-10.04069-.213a16.40046,16.40046,0,0,0-2.58753-2.1399c-11.74357-8.91392-24.691-13.15926-39.38874-9.45264C32.90955,29.07684,12.40342,54.554,21.98019,88.39805L4.93662,88.7306c-3.453-.20432-3.43139,1.74735-3.41564,4.19493.01644,2.55266-.25042,4.788,3.59723,4.58522,5.40581-.28487,10.84477.091,16.25633-.1337l2.9996-.1246a133.44,133.44,0,0,0,13.56592,16.738c18.82406,19.774,44.60736,42.02832,66.73034,63.23078,3.00014,2.87528,4.50549,2.883,7.49721.04377,22.362-21.22259,45.0756-42.07675,67.34091-63.3988,11.18917-10.71511,17.80709-23.84869,17.47989-39.85131C196.79223,56.49878,190.0143,41.84574,175.89027,31.607Zm-.78436,74.92046c-21.19643,19.99767-42.465,39.91945-63.58662,59.99549-2.35025,2.23387-3.5614,1.91365-5.71932-.13329-9.63484-9.13928-17.70482-16.7428-25.64808-24.21925-9.37566-8.82474-18.57432-17.472-29.954-28.25164-.11124-.10541-.24762-.24138-.39482-.39063-2.52642-2.56115-10.05637-11.23493-13.10926-14.767-.81038-.93758-1.31006-1.51836-1.31006-1.51836s.96436.01815,2.52224.03822c1.63467.021,3.92505.044,6.44963.05028q.92572.00237,1.88516.00144c4.09143-.0048,8.49527-.06268,11.6048-.24467,1.26849-.07425,2.32744-.16857,3.05268-.28926l1.202-1.99832,5.90932-9.8241,2.21176-3.677C74.28133,93.11369,79.057,103.963,83.14066,115.66169c.12631.36194.2581.7173.383,1.08088,4.18-6.17482,12.76178-19.08318,14.74153-22.06257.26666-.40132.41748-.62852.41748-.62852l3.16927.064,3.73346.07548.61168.0124c.05363.12261.111.253.16514.37666,4.9201,11.24041,11.93,26.807,17.20569,38.98976,6.16729-18.52473,12.05175-36.19976,18.2804-54.90888L149.085,90.66439l2.95727,4.9051,1.56651,2.59842c7.94045-.20536,19.47971-.72771,28.32383-.72771A30.29685,30.29685,0,0,1,175.10591,106.52749Zm11.90935-20.88964c-.79059,2.45526-1.81756,3.2329-4.25884,3.19283l-24.42419,1.0247c-5.10435-8.64226-12.88391-21.60939-18.47048-30.93608-2.95151,8.89-5.63219,17.0274-8.356,25.15046-2.702,8.0582-5.44738,18.45856-8.17375,26.50861l-1.11759-2.34792-3.36235-7.06432-7.52338-14.6842-16.29695-.83524-9.7245,13.747c-4.94168-14.6642-9.16305-27.1911-13.6134-40.39729-4.41932,8.72138-8.80967,16.96274-12.76835,25.40609-1.58008,3.37009-3.47627,4.70605-7.24659,4.4783-5.77582-.34892-11.589-.14741-17.38467-.06446-2.09263.02994-3.48133-.35481-4.06835-2.72307C26.01,69.084,29.74638,53.94989,42.29883,41.88335,54.43051,30.22142,68.94539,25.567,85.53557,31.88143c7.477,2.84582,13.4325,8.14607,19.09866,13.51585,3.47654,3.29461,5.11018,2.43368,8.3228-.34919C127.43143,32.51,143.94688,26.76337,162.6936,33.7683,182.41,41.1355,193.44652,65.665,187.01526,85.63785Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v2.8.0-rc2" + }, + "name": "kuberhealthy", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/components/KubernetesConnection.json b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/components/KubernetesConnection.json index a945a5c1d46..68d75a358fb 100644 --- a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/components/KubernetesConnection.json +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/components/KubernetesConnection.json @@ -137,7 +137,43 @@ "genealogy": "", "isAnnotation": false, "isNamespaced": false, - "published": false + "published": false, + "transitions": { + "connected": [ + "disconnected", + "ignored", + "not found", + "deleted" + ], + "deleted": [], + "disconnected": [ + "connected", + "deleted" + ], + "discovered": [ + "registered", + "not found", + "deleted" + ], + "ignored": [ + "deleted", + "registered" + ], + "maintenance": [ + "registered", + "connected", + "ignored", + "not found" + ], + "not found": [ + "discovered", + "deleted" + ], + "registered": [ + "connected", + "ignored" + ] + } }, "model": { "category": { diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/evaluation.rego b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/evaluation.rego index a53ae79f97c..72979ea1826 100644 --- a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/evaluation.rego +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/evaluation.rego @@ -76,6 +76,7 @@ evaluate := eval_results if { some obj in result decl := obj.declaration ] + # all pending relationships are now resolved. updated_design_file := json.patch(input, [{ "op": "replace", @@ -115,6 +116,7 @@ evaluate := eval_results if { "componentsUpdated": updated_declarations, "relationshipsAdded": relationships_added, "relationshipsRemoved": relationships_deleted, + "relationshipsUpdated": intermediate_rels, }, } } diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/helper_rules.rego b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/helper_rules.rego index a61a7979b94..94cd8a519ad 100644 --- a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/helper_rules.rego +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/helper_rules.rego @@ -100,7 +100,7 @@ group_by_id(objects) := {obj | obj := { "declaration_id": val.declaration_id, "declaration": val.declaration, - "patches": grouped_objects + "patches": grouped_objects, } } diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/patch_helper_rules.rego b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/patch_helper_rules.rego index b1956903ed1..c0c095e0d5d 100644 --- a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/patch_helper_rules.rego +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/patch_helper_rules.rego @@ -22,7 +22,7 @@ apply_patch(design_file, mutator_object, to_mutate_object) := result if { resolved_mutator_path := resolve_path(mutator_object.paths[i], mutating_declaration) - update_value := object.get(mutating_declaration, resolved_mutator_path, null) + update_value := object.get(mutating_declaration, format_json_path(resolved_mutator_path), null) update_value != null patch_object := { diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/relationship_diff_policy.rego b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/relationship_diff_policy.rego index 20ab87bb066..add07c425eb 100644 --- a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/relationship_diff_policy.rego +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/policies/relationship_diff_policy.rego @@ -4,15 +4,20 @@ import rego.v1 # Evaluates the relationships which needs to be added based on the current state of design file. + # "identified_relationships": Always contains valid set of relationships with status as "approved" + evaluate_relationships_deleted( design_relationships, identified_relationships, ) := [rel | some existing_rel in design_relationships + existing_rel.status != "deleted" + # if the existing rel is not present in the identified_relationships, # it indicates it must be deleted. - not temp_rule(existing_rel, identified_relationships) + + not does_relationship_exist_in_design(identified_relationships, existing_rel) not existing_rel.subType == "annotation" relationship := json.patch(existing_rel, [{ "op": "replace", @@ -22,12 +27,6 @@ evaluate_relationships_deleted( rel := relationship ] -temp_rule(existing_rel, identified_rels) if { - some rel in identified_rels - is_of_same_kind(existing_rel, rel) - does_belongs_to_same_model(existing_rel, rel) - is_same_selector(existing_rel, rel) -} # Evaluates the relationships which needs to be added based on the current state of design file. @@ -41,12 +40,12 @@ evaluate_relationships_added( relationship := rel ] -does_relationship_exist_in_design(design_relationships, identified_rel) if { - some existing_rel in design_relationships - - is_of_same_kind(existing_rel, identified_rel) - does_belongs_to_same_model(existing_rel, identified_rel) - is_same_selector(existing_rel, identified_rel) +does_relationship_exist_in_design(relationships, relationship) if { + some rel in relationships + rel.status == relationship.status + is_of_same_kind(rel, relationship) + does_belongs_to_same_model(rel, relationship) + is_same_selector(rel, relationship) } is_of_same_kind(existing_rel, new_rel) if { diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/edge-firewall.json b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/edge-firewall.json index b567d34cfe6..6609d305f4c 100644 --- a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/edge-firewall.json +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/edge-firewall.json @@ -87,7 +87,7 @@ ], "to": [ { - "kind": "seld", + "kind": "self", "mutatorRef": [ [] ] @@ -99,4 +99,4 @@ } } ] -} \ No newline at end of file +} diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/edge-network.json b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/edge-network.json index 42de00441eb..72950c5be81 100644 --- a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/edge-network.json +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/edge-network.json @@ -49,12 +49,11 @@ }, "patch": { "patchStrategy": "replace", - "mutatedRef": [ + "mutatorRef": [ [ "configuration", "spec", - "selectors", - "matchLabels" + "selector" ], [ "configuration", @@ -85,7 +84,7 @@ }, "patch": { "patchStrategy": "replace", - "mutatorRef": [ + "mutatedRef": [ [ "configuration", "metadata", @@ -122,7 +121,7 @@ }, "patch": { "patchStrategy": "replace", - "mutatorRef": [ + "mutatedRef": [ [ "configuration", "metadata", diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Application.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Application.json new file mode 100644 index 00000000000..df1b2188f13 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Application.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Application", + "schema": "{\n \"description\": \"Application is the Schema for the applications API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ApplicationSpec defines the specification for an Application.\",\n \"properties\": {\n \"addOwnerRef\": {\n \"description\": \"AddOwnerRef objects - flag to indicate if we need to add OwnerRefs to matching objects Matching is done by using Selector to query all ComponentGroupKinds\",\n \"type\": \"boolean\"\n },\n \"assemblyPhase\": {\n \"description\": \"AssemblyPhase represents the current phase of the application's assembly. An empty value is equivalent to \\\"Succeeded\\\".\",\n \"type\": \"string\"\n },\n \"componentKinds\": {\n \"description\": \"ComponentGroupKinds is a list of Kinds for Application's components (e.g. Deployments, Pods, Services, CRDs). It can be used in conjunction with the Application's Selector to list or watch the Applications components.\",\n \"items\": {\n \"description\": \"GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"group\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"descriptor\": {\n \"description\": \"Descriptor regroups information and metadata about an application.\",\n \"properties\": {\n \"description\": {\n \"description\": \"Description is a brief string description of the Application.\",\n \"type\": \"string\"\n },\n \"icons\": {\n \"description\": \"Icons is an optional list of icons for an application. Icon information includes the source, size, and mime type.\",\n \"items\": {\n \"description\": \"ImageSpec contains information about an image used as an icon.\",\n \"properties\": {\n \"size\": {\n \"description\": \"(optional) The size of the image in pixels (e.g., 25x25).\",\n \"type\": \"string\"\n },\n \"src\": {\n \"description\": \"The source for image represented as either an absolute URL to the image or a Data URL containing the image. Data URLs are defined in RFC 2397.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"(optional) The mine type of the image (e.g., \\\"image/png\\\").\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"src\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"keywords\": {\n \"description\": \"Keywords is an optional list of key words associated with the application (e.g. MySQL, RDBMS, database).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"links\": {\n \"description\": \"Links are a list of descriptive URLs intended to be used to surface additional documentation, dashboards, etc.\",\n \"items\": {\n \"description\": \"Link contains information about an URL to surface documentation, dashboards, etc.\",\n \"properties\": {\n \"description\": {\n \"description\": \"Description is human readable content explaining the purpose of the link.\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"Url typically points at a website address.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"maintainers\": {\n \"description\": \"Maintainers is an optional list of maintainers of the application. The maintainers in this list maintain the the source code, images, and package for the application.\",\n \"items\": {\n \"description\": \"ContactData contains information about an individual or organization.\",\n \"properties\": {\n \"email\": {\n \"description\": \"Email is the email address.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the descriptive name.\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"Url could typically be a website address.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"notes\": {\n \"description\": \"Notes contain a human readable snippets intended as a quick start for the users of the Application. CommonMark markdown syntax may be used for rich text representation.\",\n \"type\": \"string\"\n },\n \"owners\": {\n \"description\": \"Owners is an optional list of the owners of the installed application. The owners of the application should be contacted in the event of a planned or unplanned disruption affecting the application.\",\n \"items\": {\n \"description\": \"ContactData contains information about an individual or organization.\",\n \"properties\": {\n \"email\": {\n \"description\": \"Email is the email address.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the descriptive name.\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"Url could typically be a website address.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"description\": \"Type is the type of the application (e.g. WordPress, MySQL, Cassandra).\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version is an optional version indicator for the Application.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"info\": {\n \"description\": \"Info contains human readable key,value pairs for the Application.\",\n \"items\": {\n \"description\": \"InfoItem is a human readable key,value pair containing important information about how to access the Application.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is a human readable title for this piece of information.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of the value for this InfoItem.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is human readable content.\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"ValueFrom defines a reference to derive the value from another source.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ingressRef\": {\n \"description\": \"Select an Ingress.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"host\": {\n \"description\": \"The optional host to select.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The optional HTTP path.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"description\": \"Protocol for the ingress\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a Secret.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceRef\": {\n \"description\": \"Select a Service.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"The optional HTTP path.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The optional port to select.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"protocol\": {\n \"description\": \"Protocol for the service\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of source.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Selector is a label query over kinds that created by the application. It must match the component objects' labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Application\",\n \"type\": \"object\"\n}", + "version": "app.k8s.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Application", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Cluster.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Cluster.json new file mode 100644 index 00000000000..eec08069b07 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Cluster.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Cluster", + "schema": "{\n \"description\": \"Cluster is the schema for the clusters API\",\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"connection\": {\n \"description\": \"Connection holds info to connect to the member cluster\",\n \"properties\": {\n \"externalKubernetesAPIEndpoint\": {\n \"description\": \"External Kubernetes API Server endpoint Will be populated by ks-apiserver if connection type is proxy and ExternalKubeAPIEnabled is true.\",\n \"type\": \"string\"\n },\n \"kubeconfig\": {\n \"description\": \"KubeConfig content used to connect to cluster api server Should provide this field explicitly if connection type is direct. Will be populated by ks-proxy if connection type is proxy.\",\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"kubernetesAPIEndpoint\": {\n \"description\": \"Kubernetes API Server endpoint. Example: https://10.10.0.1:6443 Should provide this field explicitly if connection type is direct. Will be populated by ks-apiserver if connection type is proxy.\",\n \"type\": \"string\"\n },\n \"kubernetesAPIServerPort\": {\n \"description\": \"KubeAPIServerPort is the port which listens for forwarding kube-apiserver traffic Only applicable when connection type is proxy.\",\n \"type\": \"integer\"\n },\n \"kubesphereAPIEndpoint\": {\n \"description\": \"KubeSphere API Server endpoint. Example: http://10.10.0.11:8080 Should provide this field explicitly if connection type is direct. Will be populated by ks-apiserver if connection type is proxy.\",\n \"type\": \"string\"\n },\n \"kubesphereAPIServerPort\": {\n \"description\": \"KubeSphereAPIServerPort is the port which listens for forwarding kubesphere apigateway traffic Only applicable when connection type is proxy.\",\n \"type\": \"integer\"\n },\n \"token\": {\n \"description\": \"Token used by agents of member cluster to connect to host cluster proxy. This field is populated by apiserver only if connection type is proxy.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type defines how host cluster will connect to host cluster ConnectionTypeDirect means direct connection, this requires kubeconfig and kubesphere apiserver endpoint provided ConnectionTypeProxy means using kubesphere proxy, no kubeconfig or kubesphere apiserver endpoint required\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"enable\": {\n \"description\": \"Desired state of the cluster\",\n \"type\": \"boolean\"\n },\n \"externalKubeAPIEnabled\": {\n \"description\": \"ExternalKubeAPIEnabled export kubeapiserver to public use a lb type service if connection type is proxy\",\n \"type\": \"boolean\"\n },\n \"joinFederation\": {\n \"description\": \"Join cluster as a kubefed cluster\",\n \"type\": \"boolean\"\n },\n \"provider\": {\n \"description\": \"Provider of the cluster, this field is just for description\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Cluster\",\n \"type\": \"object\"\n}", + "version": "cluster.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Cluster", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ClusterRuleGroup.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ClusterRuleGroup.json new file mode 100644 index 00000000000..1dfb17b36ec --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ClusterRuleGroup.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ClusterRuleGroup", + "schema": "{\n \"description\": \"ClusterRuleGroup is the Schema for the ClusterRuleGroup API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ClusterRuleGroupSpec defines the desired state of ClusterRuleGroup\",\n \"properties\": {\n \"interval\": {\n \"type\": \"string\"\n },\n \"partial_response_strategy\": {\n \"type\": \"string\"\n },\n \"rules\": {\n \"items\": {\n \"properties\": {\n \"alert\": {\n \"type\": \"string\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"disable\": {\n \"type\": \"boolean\"\n },\n \"expr\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"exprBuilder\": {\n \"description\": \"If ExprBuilder is not nil, the configured Expr will be ignored\",\n \"properties\": {\n \"node\": {\n \"properties\": {\n \"comparator\": {\n \"type\": \"string\"\n },\n \"metricThreshold\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"cpu\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"load15m\": {\n \"type\": \"number\"\n },\n \"load1m\": {\n \"type\": \"number\"\n },\n \"load5m\": {\n \"type\": \"number\"\n },\n \"utilization\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"disk\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"inodeUtilization\": {\n \"type\": \"number\"\n },\n \"iopsRead\": {\n \"description\": \"The unit is io/s\",\n \"type\": \"number\"\n },\n \"iopsWrite\": {\n \"description\": \"The unit is io/s\",\n \"type\": \"number\"\n },\n \"spaceAvailable\": {\n \"description\": \"The unit is bytes\",\n \"type\": \"number\"\n },\n \"spaceUtilization\": {\n \"type\": \"number\"\n },\n \"throughputRead\": {\n \"description\": \"The unit is bytes/s\",\n \"type\": \"number\"\n },\n \"throughputWrite\": {\n \"description\": \"The unit is bytes/s\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"memory\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"available\": {\n \"description\": \"The unit is bytes\",\n \"type\": \"number\"\n },\n \"utilization\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"network\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"receivedRate\": {\n \"description\": \"The unit is bit/s\",\n \"type\": \"number\"\n },\n \"transmittedRate\": {\n \"description\": \"The unit is bit/s\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"abnormalRatio\": {\n \"type\": \"number\"\n },\n \"utilization\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"names\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"comparator\",\n \"metricThreshold\",\n \"names\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"for\": {\n \"description\": \"Duration is a valid time unit Supported units: y, w, d, h, m, s, ms Examples: `30s`, `1m`, `1h20m15s`\",\n \"pattern\": \"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"severity\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"alert\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"rules\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Cluster Rule Group\",\n \"type\": \"object\"\n}", + "version": "alerting.kubesphere.io/v2beta1" + }, + "configuration": null, + "description": "", + "displayName": "Cluster Rule Group", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedRole.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedRole.json new file mode 100644 index 00000000000..b52f4250443 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedRole.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "FederatedRole", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"placement\": {\n \"properties\": {\n \"clusterSelector\": {\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusters\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\"\n },\n \"rules\": {\n \"items\": {\n \"description\": \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n \"properties\": {\n \"apiGroups\": {\n \"description\": \"APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"nonResourceURLs\": {\n \"description\": \"NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"), but not both.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"resourceNames\": {\n \"description\": \"ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"resources\": {\n \"description\": \"Resources is a list of resources this rule applies to. '*' represents all resources.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verbs\": {\n \"description\": \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"verbs\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"placement\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Federated Role\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Federated Role", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedRoleBinding.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedRoleBinding.json new file mode 100644 index 00000000000..a8f78335edb --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedRoleBinding.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "FederatedRoleBinding", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"placement\": {\n \"properties\": {\n \"clusterSelector\": {\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusters\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\"\n },\n \"roleRef\": {\n \"description\": \"RoleRef contains information that points to the role being used\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiGroup\",\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"subjects\": {\n \"items\": {\n \"description\": \"Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the object being referenced.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referenced object. If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"roleRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"placement\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Federated Role Binding\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Federated Role Binding", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedUser.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedUser.json new file mode 100644 index 00000000000..fc6d2841fce --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/FederatedUser.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "FederatedUser", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"placement\": {\n \"properties\": {\n \"clusterSelector\": {\n \"properties\": {\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusters\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"UserSpec defines the desired state of User\",\n \"properties\": {\n \"description\": {\n \"description\": \"Description of the user.\",\n \"type\": \"string\"\n },\n \"displayName\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"description\": \"Unique email address(https://www.ietf.org/rfc/rfc5322.txt).\",\n \"type\": \"string\"\n },\n \"groups\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"lang\": {\n \"description\": \"The preferred written or spoken language for the user.\",\n \"type\": \"string\"\n },\n \"password\": {\n \"description\": \"password will be encrypted by mutating admission webhook Password pattern is tricky here. The rule is simple: length between [6,64], at least one uppercase letter, one lowercase letter, one digit. The regexp in console(javascript) is quite straightforward: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)[^]{6,64}$ But in Go, we don't have ?= (back tracking) capability in regexp (also in CRD validation pattern) So we adopted an alternative scheme to achieve. Use 6 different regexp to combine to achieve the same effect. These six schemes enumerate the arrangement of numbers, uppercase letters, and lowercase letters that appear for the first time. - ^(.*[a-z].*[A-Z].*[0-9].*)$ stands for lowercase letter comes first, then followed by an uppercase letter, then a digit. - ^(.*[a-z].*[0-9].*[A-Z].*)$ stands for lowercase letter comes first, then followed by a digit, then an uppercase leeter. - ^(.*[A-Z].*[a-z].*[0-9].*)$ ... - ^(.*[A-Z].*[0-9].*[a-z].*)$ ... - ^(.*[0-9].*[a-z].*[A-Z].*)$ ... - ^(.*[0-9].*[A-Z].*[a-z].*)$ ... Last but not least, the bcrypt string is also included to match the encrypted password. ^(\\\\$2[ayb]\\\\$.{56})$\",\n \"maxLength\": 64,\n \"minLength\": 8,\n \"pattern\": \"^(.*[a-z].*[A-Z].*[0-9].*)$|^(.*[a-z].*[0-9].*[A-Z].*)$|^(.*[A-Z].*[a-z].*[0-9].*)$|^(.*[A-Z].*[0-9].*[a-z].*)$|^(.*[0-9].*[a-z].*[A-Z].*)$|^(.*[0-9].*[A-Z].*[a-z].*)$|^(\\\\$2[ayb]\\\\$.{56})$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"email\"\n ],\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"UserStatus defines the observed state of User\",\n \"properties\": {\n \"lastLoginTime\": {\n \"description\": \"Last login attempt timestamp\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"lastTransitionTime\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"type\": \"string\"\n },\n \"state\": {\n \"description\": \"The user status\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"placement\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Federated User\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Federated User", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Gateway.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Gateway.json new file mode 100644 index 00000000000..fa6038a5078 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Gateway.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Gateway", + "schema": "{\n \"description\": \"Gateway is the Schema for the gateways API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"GatewaySpec defines the desired state of Gateway\",\n \"properties\": {\n \"controller\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"config\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"scope\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"udp\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"service\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Service Type string describes ingress methods for a service\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Gateway\",\n \"type\": \"object\"\n}", + "version": "gateway.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Gateway", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRole.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRole.json new file mode 100644 index 00000000000..53067eedc8b --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRole.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "GlobalRole", + "schema": "{\n \"properties\": {\n \"rules\": {\n \"description\": \"Rules holds all the PolicyRules for this GlobalRole\",\n \"items\": {\n \"description\": \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n \"properties\": {\n \"apiGroups\": {\n \"description\": \"APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"nonResourceURLs\": {\n \"description\": \"NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"), but not both.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"resourceNames\": {\n \"description\": \"ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"resources\": {\n \"description\": \"Resources is a list of resources this rule applies to. '*' represents all resources.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verbs\": {\n \"description\": \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"verbs\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"title\": \"Global Role\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Global Role", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRoleBinding.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRoleBinding.json new file mode 100644 index 00000000000..64696f5b96e --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRoleBinding.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "GlobalRoleBinding", + "schema": "{\n \"description\": \"GlobalRoleBinding is the Schema for the globalrolebindings API\",\n \"properties\": {\n \"roleRef\": {\n \"description\": \"RoleRef can only reference a GlobalRole. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiGroup\",\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"subjects\": {\n \"description\": \"Subjects holds references to the objects the role applies to.\",\n \"items\": {\n \"description\": \"Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the object being referenced.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referenced object. If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"roleRef\"\n ],\n \"title\": \"Global Role Binding\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Global Role Binding", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRuleGroup.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRuleGroup.json new file mode 100644 index 00000000000..8e23c0ee87b --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GlobalRuleGroup.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "GlobalRuleGroup", + "schema": "{\n \"description\": \"GlobalRuleGroup is the Schema for the GlobalRuleGroup API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"GlobalRuleGroupSpec defines the desired state of GlobalRuleGroup\",\n \"properties\": {\n \"interval\": {\n \"type\": \"string\"\n },\n \"partial_response_strategy\": {\n \"type\": \"string\"\n },\n \"rules\": {\n \"items\": {\n \"properties\": {\n \"alert\": {\n \"type\": \"string\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"clusterSelector\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"inValues\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"matcher\": {\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"disable\": {\n \"type\": \"boolean\"\n },\n \"expr\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"exprBuilder\": {\n \"description\": \"If ExprBuilder is not nil, the configured Expr will be ignored\",\n \"properties\": {\n \"node\": {\n \"properties\": {\n \"comparator\": {\n \"type\": \"string\"\n },\n \"metricThreshold\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"cpu\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"load15m\": {\n \"type\": \"number\"\n },\n \"load1m\": {\n \"type\": \"number\"\n },\n \"load5m\": {\n \"type\": \"number\"\n },\n \"utilization\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"disk\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"inodeUtilization\": {\n \"type\": \"number\"\n },\n \"iopsRead\": {\n \"description\": \"The unit is io/s\",\n \"type\": \"number\"\n },\n \"iopsWrite\": {\n \"description\": \"The unit is io/s\",\n \"type\": \"number\"\n },\n \"spaceAvailable\": {\n \"description\": \"The unit is bytes\",\n \"type\": \"number\"\n },\n \"spaceUtilization\": {\n \"type\": \"number\"\n },\n \"throughputRead\": {\n \"description\": \"The unit is bytes/s\",\n \"type\": \"number\"\n },\n \"throughputWrite\": {\n \"description\": \"The unit is bytes/s\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"memory\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"available\": {\n \"description\": \"The unit is bytes\",\n \"type\": \"number\"\n },\n \"utilization\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"network\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"receivedRate\": {\n \"description\": \"The unit is bit/s\",\n \"type\": \"number\"\n },\n \"transmittedRate\": {\n \"description\": \"The unit is bit/s\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"abnormalRatio\": {\n \"type\": \"number\"\n },\n \"utilization\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"names\": {\n \"items\": {\n \"description\": \"The cluster to which the node belongs must be specified.\",\n \"properties\": {\n \"cluster\": {\n \"type\": \"string\"\n },\n \"names\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"cluster\",\n \"names\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"comparator\",\n \"names\"\n ],\n \"type\": \"object\"\n },\n \"workload\": {\n \"properties\": {\n \"comparator\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"metricThreshold\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"cpu\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"usage\": {\n \"description\": \"The unit is core\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"memory\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"usage\": {\n \"description\": \"The memory usage contains cache The unit is bytes\",\n \"type\": \"number\"\n },\n \"usageWoCache\": {\n \"description\": \"The memory usage contains no cache The unit is bytes\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"network\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"receivedRate\": {\n \"description\": \"The unit is bit/s\",\n \"type\": \"number\"\n },\n \"transmittedRate\": {\n \"description\": \"The unit is bit/s\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"replica\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"unavailableRatio\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"names\": {\n \"items\": {\n \"description\": \"The cluster and namespace to which the workloads belongs must be specified.\",\n \"properties\": {\n \"cluster\": {\n \"type\": \"string\"\n },\n \"names\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"cluster\",\n \"names\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"comparator\",\n \"kind\",\n \"names\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"for\": {\n \"description\": \"Duration is a valid time unit Supported units: y, w, d, h, m, s, ms Examples: `30s`, `1m`, `1h20m15s`\",\n \"pattern\": \"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"inValues\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"matcher\": {\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"severity\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"alert\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"rules\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Global Rule Group\",\n \"type\": \"object\"\n}", + "version": "alerting.kubesphere.io/v2beta1" + }, + "configuration": null, + "description": "", + "displayName": "Global Rule Group", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Group.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Group.json new file mode 100644 index 00000000000..d16d017bb03 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Group.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Group", + "schema": "{\n \"description\": \"Group is the Schema for the groups API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"GroupSpec defines the desired state of Group\",\n \"type\": \"object\"\n }\n },\n \"title\": \"Group\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Group", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GroupBinding.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GroupBinding.json new file mode 100644 index 00000000000..36d0ff605b2 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/GroupBinding.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "GroupBinding", + "schema": "{\n \"description\": \"GroupBinding is the Schema for the groupbindings API\",\n \"properties\": {\n \"groupRef\": {\n \"description\": \"GroupRef defines the desired relation of GroupBinding\",\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"users\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"title\": \"Group Binding\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Group Binding", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmApplication.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmApplication.json new file mode 100644 index 00000000000..e4b87554097 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmApplication.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "HelmApplication", + "schema": "{\n \"description\": \"HelmApplication is the Schema for the helmapplications API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"HelmApplicationSpec defines the desired state of HelmApplication\",\n \"properties\": {\n \"abstraction\": {\n \"description\": \"info from frontend\",\n \"type\": \"string\"\n },\n \"appHome\": {\n \"type\": \"string\"\n },\n \"attachments\": {\n \"description\": \"attachments id\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": {\n \"description\": \"description from chart's description or frontend\",\n \"type\": \"string\"\n },\n \"icon\": {\n \"description\": \"The attachment id of the icon\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"the name of the helm application\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Helm Application\",\n \"type\": \"object\"\n}", + "version": "application.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Helm Application", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmApplicationVersion.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmApplicationVersion.json new file mode 100644 index 00000000000..44eefe22914 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmApplicationVersion.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "HelmApplicationVersion", + "schema": "{\n \"description\": \"HelmApplicationVersion is the Schema for the helmapplicationversions API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"HelmApplicationVersionSpec defines the desired state of HelmApplicationVersion\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations are additional mappings uninterpreted by Helm, made available for inspection by other applications.\",\n \"type\": \"object\"\n },\n \"apiVersion\": {\n \"description\": \"The API Version of this chart.\",\n \"type\": \"string\"\n },\n \"appVersion\": {\n \"description\": \"The version of the application enclosed inside of this chart.\",\n \"type\": \"string\"\n },\n \"condition\": {\n \"description\": \"The condition to check to enable chart\",\n \"type\": \"string\"\n },\n \"created\": {\n \"description\": \"chart create time\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"data\": {\n \"description\": \"raw data of chart, it will !!!NOT!!! be save to etcd\",\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"dataKey\": {\n \"description\": \"dataKey in the storage\",\n \"type\": \"string\"\n },\n \"dependencies\": {\n \"description\": \"Dependencies are a list of dependencies for a chart.\",\n \"items\": {\n \"description\": \"Dependency describes a chart upon which another chart depends. Dependencies can be used to express developer intent, or to capture the state of a chart.\",\n \"properties\": {\n \"alias\": {\n \"description\": \"Alias usable alias to be used for the chart\",\n \"type\": \"string\"\n },\n \"condition\": {\n \"description\": \"A yaml path that resolves to a boolean, used for enabling/disabling charts (e.g. subchart1.enabled )\",\n \"type\": \"string\"\n },\n \"enabled\": {\n \"description\": \"Enabled bool determines if chart should be loaded\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Name is the name of the dependency. This must mach the name in the dependency's Chart.yaml.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"The URL to the repository. Appending `index.yaml` to this string should result in a URL that can be used to fetch the repository index.\",\n \"type\": \"string\"\n },\n \"tags\": {\n \"description\": \"Tags can be used to group charts for enabling/disabling together\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"version\": {\n \"description\": \"Version is the version (range) of this chart. A lock file will always produce a single version, while a dependency may contain a semantic version range.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"deprecated\": {\n \"description\": \"Whether or not this chart is deprecated\",\n \"type\": \"boolean\"\n },\n \"description\": {\n \"description\": \"A one-sentence description of the chart\",\n \"type\": \"string\"\n },\n \"digest\": {\n \"description\": \"chart digest\",\n \"type\": \"string\"\n },\n \"home\": {\n \"description\": \"The URL to a relevant project page, git repo, or contact person\",\n \"type\": \"string\"\n },\n \"icon\": {\n \"description\": \"The URL to an icon file.\",\n \"type\": \"string\"\n },\n \"keywords\": {\n \"description\": \"A list of string keywords\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"kubeVersion\": {\n \"description\": \"KubeVersion is a SemVer constraint specifying the version of Kubernetes required.\",\n \"type\": \"string\"\n },\n \"maintainers\": {\n \"description\": \"A list of name and URL/email address combinations for the maintainer(s)\",\n \"items\": {\n \"description\": \"Maintainer describes a Chart maintainer.\",\n \"properties\": {\n \"email\": {\n \"description\": \"Email is an optional email address to contact the named maintainer\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is a user name or organization name\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL is an optional URL to an address for the named maintainer\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"The name of the chart\",\n \"type\": \"string\"\n },\n \"sources\": {\n \"description\": \"Source is the URL to the source code of this chart\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tags\": {\n \"description\": \"The tags to check to enable chart\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Specifies the chart type: application or library\",\n \"type\": \"string\"\n },\n \"urls\": {\n \"description\": \"chart url\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"version\": {\n \"description\": \"A SemVer 2 conformant version string of the chart\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Helm Application Version\",\n \"type\": \"object\"\n}", + "version": "application.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Helm Application Version", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmCategory.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmCategory.json new file mode 100644 index 00000000000..a32bc97cf02 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmCategory.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "HelmCategory", + "schema": "{\n \"description\": \"HelmCategory is the Schema for the helmcategories API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"HelmCategorySpec defines the desired state of HelmRepo\",\n \"properties\": {\n \"description\": {\n \"description\": \"info from frontend\",\n \"type\": \"string\"\n },\n \"locale\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name of the category\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Helm Category\",\n \"type\": \"object\"\n}", + "version": "application.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Helm Category", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmRelease.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmRelease.json new file mode 100644 index 00000000000..c72492c5a49 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmRelease.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "HelmRelease", + "schema": "{\n \"description\": \"HelmRelease is the Schema for the helmreleases API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"HelmReleaseSpec defines the desired state of HelmRelease\",\n \"properties\": {\n \"appId\": {\n \"description\": \"id of the helmapplication\",\n \"type\": \"string\"\n },\n \"appVerId\": {\n \"description\": \"application version id\",\n \"type\": \"string\"\n },\n \"chartAppVer\": {\n \"description\": \"appVersion from Chart.yaml\",\n \"type\": \"string\"\n },\n \"chartName\": {\n \"description\": \"The name of the chart which will be installed.\",\n \"type\": \"string\"\n },\n \"chartVersion\": {\n \"description\": \"Specify the exact chart version to install. If this is not specified, the latest version is installed\",\n \"type\": \"string\"\n },\n \"description\": {\n \"description\": \"Message got from frontend\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the release\",\n \"type\": \"string\"\n },\n \"repoId\": {\n \"description\": \"id of the repo\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"helm release values.yaml\",\n \"format\": \"byte\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"expected release version, when this version is not equal status.version, the release need upgrade this filed should be modified when any filed of the spec modified.\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"chartName\",\n \"chartVersion\",\n \"name\",\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Helm Release\",\n \"type\": \"object\"\n}", + "version": "application.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Helm Release", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmRepo.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmRepo.json new file mode 100644 index 00000000000..8e167229ee6 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/HelmRepo.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "HelmRepo", + "schema": "{\n \"description\": \"HelmRepo is the Schema for the helmrepoes API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"HelmRepoSpec defines the desired state of HelmRepo\",\n \"properties\": {\n \"credential\": {\n \"description\": \"helm repo credential\",\n \"properties\": {\n \"accessKeyID\": {\n \"type\": \"string\"\n },\n \"caFile\": {\n \"description\": \"verify certificates of HTTPS-enabled servers using this CA bundle\",\n \"type\": \"string\"\n },\n \"certFile\": {\n \"description\": \"identify HTTPS client using this SSL certificate file\",\n \"type\": \"string\"\n },\n \"insecureSkipTLSVerify\": {\n \"description\": \"skip tls certificate checks for the repository, default is ture\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"identify HTTPS client using this SSL key file\",\n \"type\": \"string\"\n },\n \"password\": {\n \"description\": \"chart repository password\",\n \"type\": \"string\"\n },\n \"secretAccessKey\": {\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"chart repository username\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": {\n \"description\": \"chart repo description from frontend\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name of the repo\",\n \"type\": \"string\"\n },\n \"syncPeriod\": {\n \"description\": \"sync period in seconds, no sync when SyncPeriod=0, the minimum SyncPeriod is 180s\",\n \"type\": \"integer\"\n },\n \"url\": {\n \"description\": \"helm repo url\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"expected repo version, when this version is not equal status.version, the repo need upgrade this filed should be modified when any filed of the spec modified.\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"name\",\n \"url\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Helm Repo\",\n \"type\": \"object\"\n}", + "version": "application.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Helm Repo", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPAMBlock.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPAMBlock.json new file mode 100644 index 00000000000..2a19204e917 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPAMBlock.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "IPAMBlock", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the IPAMBlock.\",\n \"properties\": {\n \"allocations\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"attributes\": {\n \"items\": {\n \"properties\": {\n \"handle_id\": {\n \"type\": \"string\"\n },\n \"secondary\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"cidr\": {\n \"type\": \"string\"\n },\n \"deleted\": {\n \"type\": \"boolean\"\n },\n \"id\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"unallocated\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"allocations\",\n \"attributes\",\n \"cidr\",\n \"deleted\",\n \"id\",\n \"unallocated\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"IPAM Block\",\n \"type\": \"object\"\n}", + "version": "network.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "IPAM Block", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPAMHandle.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPAMHandle.json new file mode 100644 index 00000000000..59961dfd8c8 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPAMHandle.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "IPAMHandle", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the IPAMHandle.\",\n \"properties\": {\n \"block\": {\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"type\": \"object\"\n },\n \"deleted\": {\n \"type\": \"boolean\"\n },\n \"handleID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"block\",\n \"deleted\",\n \"handleID\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"IPAM Handle\",\n \"type\": \"object\"\n}", + "version": "network.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "IPAM Handle", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPPool.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPPool.json new file mode 100644 index 00000000000..8fc757401e3 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/IPPool.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "IPPool", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"blockSize\": {\n \"description\": \"The block size to use for IP address assignments from this pool. Defaults to 26 for IPv4 and 112 for IPv6.\",\n \"type\": \"integer\"\n },\n \"cidr\": {\n \"description\": \"The pool CIDR.\",\n \"type\": \"string\"\n },\n \"disabled\": {\n \"description\": \"When disabled is true, IPAM will not assign addresses from this pool.\",\n \"type\": \"boolean\"\n },\n \"dns\": {\n \"description\": \"DNS contains values interesting for DNS resolvers\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\"\n },\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"search\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"rangeEnd\": {\n \"description\": \"The last ip, inclusive\",\n \"type\": \"string\"\n },\n \"rangeStart\": {\n \"description\": \"The first ip, inclusive\",\n \"type\": \"string\"\n },\n \"routes\": {\n \"items\": {\n \"properties\": {\n \"dst\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"vlanConfig\": {\n \"properties\": {\n \"master\": {\n \"type\": \"string\"\n },\n \"vlanId\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"master\",\n \"vlanId\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"cidr\",\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"IP Pool\",\n \"type\": \"object\"\n}", + "version": "network.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "IP Pool", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/LoginRecord.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/LoginRecord.json new file mode 100644 index 00000000000..4c2da4dd9be --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/LoginRecord.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "LoginRecord", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"provider\": {\n \"description\": \"Provider of authentication, Ldap/Github etc.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"States failed login attempt reason\",\n \"type\": \"string\"\n },\n \"sourceIP\": {\n \"description\": \"Source IP of client\",\n \"type\": \"string\"\n },\n \"success\": {\n \"description\": \"Successful login attempt or not\",\n \"type\": \"boolean\"\n },\n \"type\": {\n \"description\": \"Which authentication method used, Password/OAuth/Token\",\n \"type\": \"string\"\n },\n \"userAgent\": {\n \"description\": \"User agent of login attempt\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"provider\",\n \"reason\",\n \"sourceIP\",\n \"success\",\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Login Record\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Login Record", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/NamespaceNetworkPolicy.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/NamespaceNetworkPolicy.json new file mode 100644 index 00000000000..ccdcc4366cb --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/NamespaceNetworkPolicy.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "NamespaceNetworkPolicy", + "schema": "{\n \"description\": \"NamespaceNetworkPolicy is the Schema for the namespacenetworkpolicies API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"NamespaceNetworkPolicySpec provides the specification of a NamespaceNetworkPolicy\",\n \"properties\": {\n \"egress\": {\n \"description\": \"List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8\",\n \"items\": {\n \"description\": \"NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8\",\n \"properties\": {\n \"ports\": {\n \"description\": \"List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n \"items\": {\n \"description\": \"NetworkPolicyPort describes a port to allow traffic on\",\n \"properties\": {\n \"endPort\": {\n \"description\": \"If set, indicates that the range of ports from port to endPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"to\": {\n \"description\": \"List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.\",\n \"items\": {\n \"description\": \"NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed\",\n \"properties\": {\n \"ipBlock\": {\n \"description\": \"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\n \"properties\": {\n \"cidr\": {\n \"description\": \"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.1/24\\\" or \\\"2001:db9::/64\\\"\",\n \"type\": \"string\"\n },\n \"except\": {\n \"description\": \"Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \\\"192.168.1.1/24\\\" or \\\"2001:db9::/64\\\" Except values will be rejected if they are outside the CIDR range\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"cidr\"\n ],\n \"type\": \"object\"\n },\n \"namespace\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"service\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ingress\": {\n \"description\": \"List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)\",\n \"items\": {\n \"description\": \"NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.\",\n \"properties\": {\n \"from\": {\n \"description\": \"List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\n \"items\": {\n \"description\": \"NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed\",\n \"properties\": {\n \"ipBlock\": {\n \"description\": \"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\n \"properties\": {\n \"cidr\": {\n \"description\": \"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.1/24\\\" or \\\"2001:db9::/64\\\"\",\n \"type\": \"string\"\n },\n \"except\": {\n \"description\": \"Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \\\"192.168.1.1/24\\\" or \\\"2001:db9::/64\\\" Except values will be rejected if they are outside the CIDR range\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"cidr\"\n ],\n \"type\": \"object\"\n },\n \"namespace\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"service\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ports\": {\n \"description\": \"List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n \"items\": {\n \"description\": \"NetworkPolicyPort describes a port to allow traffic on\",\n \"properties\": {\n \"endPort\": {\n \"description\": \"If set, indicates that the range of ports from port to endPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"policyTypes\": {\n \"description\": \"List of rule types that the NetworkPolicy relates to. Valid options are \\\"Ingress\\\", \\\"Egress\\\", or \\\"Ingress,Egress\\\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \\\"Egress\\\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \\\"Egress\\\" (since such a policy would not include an Egress section and would otherwise default to just [ \\\"Ingress\\\" ]). This field is beta-level in 1.8\",\n \"items\": {\n \"description\": \"PolicyType string describes the NetworkPolicy type This type is beta-level in 1.8\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Namespace Network Policy\",\n \"type\": \"object\"\n}", + "version": "network.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Namespace Network Policy", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ProvisionerCapability.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ProvisionerCapability.json new file mode 100644 index 00000000000..d3281585459 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ProvisionerCapability.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ProvisionerCapability", + "schema": "{\n \"description\": \"ProvisionerCapability is the schema for the provisionercapability API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ProvisionerCapabilitySpec defines the desired state of ProvisionerCapability\",\n \"properties\": {\n \"features\": {\n \"description\": \"CapabilityFeatures describe storage features\",\n \"properties\": {\n \"snapshot\": {\n \"description\": \"SnapshotFeature describe snapshot features\",\n \"properties\": {\n \"create\": {\n \"type\": \"boolean\"\n },\n \"list\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"create\",\n \"list\"\n ],\n \"type\": \"object\"\n },\n \"topology\": {\n \"type\": \"boolean\"\n },\n \"volume\": {\n \"description\": \"VolumeFeature describe volume features\",\n \"properties\": {\n \"attach\": {\n \"type\": \"boolean\"\n },\n \"clone\": {\n \"type\": \"boolean\"\n },\n \"create\": {\n \"type\": \"boolean\"\n },\n \"expandMode\": {\n \"type\": \"string\"\n },\n \"list\": {\n \"type\": \"boolean\"\n },\n \"stats\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"attach\",\n \"clone\",\n \"create\",\n \"expandMode\",\n \"list\",\n \"stats\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"snapshot\",\n \"topology\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"pluginInfo\": {\n \"description\": \"PluginInfo describes plugin info\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"version\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"features\",\n \"pluginInfo\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Provisioner Capability\",\n \"type\": \"object\"\n}", + "version": "storage.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Provisioner Capability", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ResourceQuota.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ResourceQuota.json new file mode 100644 index 00000000000..63015a0539f --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ResourceQuota.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ResourceQuota", + "schema": "{\n \"description\": \"WorkspaceResourceQuota sets aggregate quota restrictions enforced per workspace\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Spec defines the desired quota\",\n \"properties\": {\n \"quota\": {\n \"description\": \"Quota defines the desired quota\",\n \"properties\": {\n \"hard\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n \"type\": \"object\"\n },\n \"scopeSelector\": {\n \"description\": \"scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of scope selector requirements by scope of the resources.\",\n \"items\": {\n \"description\": \"A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.\",\n \"properties\": {\n \"operator\": {\n \"description\": \"Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\",\n \"type\": \"string\"\n },\n \"scopeName\": {\n \"description\": \"The name of the scope that the selector applies to.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"operator\",\n \"scopeName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"scopes\": {\n \"description\": \"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\n \"items\": {\n \"description\": \"A ResourceQuotaScope defines a filter that must match each object tracked by a quota\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"LabelSelector is used to select projects by label.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"quota\",\n \"selector\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Resource Quota\",\n \"type\": \"object\"\n}", + "version": "quota.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Resource Quota", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/RoleBase.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/RoleBase.json new file mode 100644 index 00000000000..4ef6342a516 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/RoleBase.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "RoleBase", + "schema": "{\n \"properties\": {\n \"role\": {\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n }\n },\n \"required\": [\n \"role\"\n ],\n \"title\": \"Role Base\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Role Base", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/RuleGroup.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/RuleGroup.json new file mode 100644 index 00000000000..7c315f8465b --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/RuleGroup.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "RuleGroup", + "schema": "{\n \"description\": \"RuleGroup is the Schema for the RuleGroup API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"RuleGroupSpec defines the desired state of RuleGroup\",\n \"properties\": {\n \"interval\": {\n \"type\": \"string\"\n },\n \"partial_response_strategy\": {\n \"type\": \"string\"\n },\n \"rules\": {\n \"items\": {\n \"properties\": {\n \"alert\": {\n \"type\": \"string\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"disable\": {\n \"type\": \"boolean\"\n },\n \"expr\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"exprBuilder\": {\n \"description\": \"If ExprBuilder is not nil, the configured Expr will be ignored\",\n \"properties\": {\n \"workload\": {\n \"properties\": {\n \"comparator\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"metricThreshold\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"cpu\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"usage\": {\n \"description\": \"The unit is core\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"memory\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"usage\": {\n \"description\": \"The memory usage contains cache The unit is bytes\",\n \"type\": \"number\"\n },\n \"usageWoCache\": {\n \"description\": \"The memory usage contains no cache The unit is bytes\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"network\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"receivedRate\": {\n \"description\": \"The unit is bit/s\",\n \"type\": \"number\"\n },\n \"transmittedRate\": {\n \"description\": \"The unit is bit/s\",\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"replica\": {\n \"description\": \"Only one of its members may be specified.\",\n \"properties\": {\n \"unavailableRatio\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"names\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"comparator\",\n \"kind\",\n \"names\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"for\": {\n \"description\": \"Duration is a valid time unit Supported units: y, w, d, h, m, s, ms Examples: `30s`, `1m`, `1h20m15s`\",\n \"pattern\": \"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"severity\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"alert\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"rules\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Rule Group\",\n \"type\": \"object\"\n}", + "version": "alerting.kubesphere.io/v2beta1" + }, + "configuration": null, + "description": "", + "displayName": "Rule Group", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ServicePolicy.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ServicePolicy.json new file mode 100644 index 00000000000..f8c0a11647d --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/ServicePolicy.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ServicePolicy", + "schema": "{\n \"description\": \"ServicePolicy is the Schema for the servicepolicies API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ServicePolicySpec defines the desired state of ServicePolicy\",\n \"properties\": {\n \"selector\": {\n \"description\": \"Label selector for destination rules.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"template\": {\n \"description\": \"Template used to create a destination rule\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata of the virtual services created from this template\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec indicates the behavior of a destination rule.\",\n \"properties\": {\n \"export_to\": {\n \"description\": \"A list of namespaces to which this destination rule is exported. The resolution of a destination rule to apply to a service occurs in the context of a hierarchy of namespaces. Exporting a destination rule allows it to be included in the resolution hierarchy for services in other namespaces. This feature provides a mechanism for service owners and mesh administrators to control the visibility of destination rules across namespace boundaries. \\n If no namespaces are specified then the destination rule is exported to all namespaces by default. \\n The value \\\".\\\" is reserved and defines an export to the same namespace that the destination rule is declared in. Similarly, the value \\\"*\\\" is reserved and defines an export to all namespaces. \\n NOTE: in the current release, the `exportTo` value is restricted to \\\".\\\" or \\\"*\\\" (i.e., the current namespace or all namespaces).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"host\": {\n \"description\": \"The name of a service from the service registry. Service names are looked up from the platform's service registry (e.g., Kubernetes services, Consul services, etc.) and from the hosts declared by [ServiceEntries](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Rules defined for services that do not exist in the service registry will be ignored. \\n *Note for Kubernetes users*: When short names are used (e.g. \\\"reviews\\\" instead of \\\"reviews.default.svc.cluster.local\\\"), Istio will interpret the short name based on the namespace of the rule, not the service. A rule in the \\\"default\\\" namespace containing a host \\\"reviews\\\" will be interpreted as \\\"reviews.default.svc.cluster.local\\\", irrespective of the actual namespace associated with the reviews service. _To avoid potential misconfigurations, it is recommended to always use fully qualified domain names over short names._ \\n Note that the host field applies to both HTTP and TCP services.\",\n \"type\": \"string\"\n },\n \"subsets\": {\n \"description\": \"One or more named sets that represent individual versions of a service. Traffic policies can be overridden at subset level.\",\n \"items\": {\n \"description\": \"A subset of endpoints of a service. Subsets can be used for scenarios like A/B testing, or routing to a specific version of a service. Refer to [VirtualService](https://istio.io/docs/reference/config/networking/virtual-service/#VirtualService) documentation for examples of using subsets in these scenarios. In addition, traffic policies defined at the service-level can be overridden at a subset-level. The following rule uses a round robin load balancing policy for all traffic going to a subset named testversion that is composed of endpoints (e.g., pods) with labels (version:v3). \\n {{\\u003ctabset category-name=\\\"example\\\"\\u003e}} {{\\u003ctab name=\\\"v1alpha3\\\" category-value=\\\"v1alpha3\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: bookinfo-ratings spec: host: ratings.prod.svc.cluster.local trafficPolicy: loadBalancer: simple: LEAST_CONN subsets: - name: testversion labels: version: v3 trafficPolicy: loadBalancer: simple: ROUND_ROBIN ``` {{\\u003c/tab\\u003e}} \\n {{\\u003ctab name=\\\"v1beta1\\\" category-value=\\\"v1beta1\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: bookinfo-ratings spec: host: ratings.prod.svc.cluster.local trafficPolicy: loadBalancer: simple: LEAST_CONN subsets: - name: testversion labels: version: v3 trafficPolicy: loadBalancer: simple: ROUND_ROBIN ``` {{\\u003c/tab\\u003e}} {{\\u003c/tabset\\u003e}} \\n **Note:** Policies specified for subsets will not take effect until a route rule explicitly sends traffic to this subset. \\n One or more labels are typically required to identify the subset destination, however, when the corresponding DestinationRule represents a host that supports multiple SNI hosts (e.g., an egress gateway), a subset without labels may be meaningful. In this case a traffic policy with [ClientTLSSettings](#ClientTLSSettings) can be used to identify a specific SNI host corresponding to the named subset.\",\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels apply a filter over the endpoints of a service in the service registry. See route rules for examples of usage.\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the subset. The service name and the subset name can be used for traffic splitting in a route rule.\",\n \"type\": \"string\"\n },\n \"traffic_policy\": {\n \"description\": \"Traffic policies that apply to this subset. Subsets inherit the traffic policies specified at the DestinationRule level. Settings specified at the subset level will override the corresponding settings specified at the DestinationRule level.\",\n \"properties\": {\n \"connection_pool\": {\n \"description\": \"Settings controlling the volume of connections to an upstream service\",\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2_upgrade_policy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http1_max_pending_requests\": {\n \"description\": \"Maximum number of pending HTTP requests to a destination. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2_max_requests\": {\n \"description\": \"Maximum number of requests to a backend. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idle_timeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. If not set, the default is 1 hour. When the idle timeout is reached the connection will be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive. Applies to both HTTP1.1 and HTTP2 connections.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_requests_per_connection\": {\n \"description\": \"Maximum number of requests per connection to a backend. Setting this parameter to 1 disables keep alive. Default 0, meaning \\\"unlimited\\\", up to 2^29.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"max_retries\": {\n \"description\": \"Maximum number of retries that can be outstanding to all hosts in a cluster at a given time. Defaults to 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connect_timeout\": {\n \"description\": \"TCP connection timeout. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 10s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_connections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcp_keepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"probes\": {\n \"description\": \"Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"time\": {\n \"description\": \"The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"load_balancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"properties\": {\n \"locality_lb_setting\": {\n \"description\": \"Locality load balancer settings, this will override mesh wide settings in entirety, meaning no merging would be performed between this object and the object one in MeshConfig\",\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute or failover can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/locality_weight) If empty, the locality weight is set according to the endpoints number within it.\",\n \"items\": {\n \"description\": \"Describes how traffic originating in the 'from' zone or sub-zone is distributed over a set of 'to' zones. Syntax for specifying a zone is {region}/{zone}/{sub-zone} and terminal wildcards are allowed on any segment of the specification. Examples: * - matches all localities us-west/* - all zones and sub-zones within the us-west region us-west/zone-1/* - all sub-zones within us-west/zone-1\",\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g. 'region/zone/sub_zone'.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights. The sum of all weights should be == 100. Any locality not assigned a weight will receive no traffic.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety. e.g. true means that turn on locality load balancing for this DestinationRule no matter what mesh wide settings is.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The bool value.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"failover\": {\n \"description\": \"Optional: only failover or distribute can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.\",\n \"items\": {\n \"description\": \"Specify the traffic failover policy across regions. Since zone and sub-zone failover is supported by default this only needs to be specified for regions when the operator needs to constrain traffic failover so that the default behavior of failing over to any endpoint globally does not apply. This is useful when failing over traffic across regions would not improve service health or may need to be restricted for other reasons like regulatory controls.\",\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"description\": \"Destination region the traffic will fail over to when endpoints in the 'from' region becomes unhealthy.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"outlier_detection\": {\n \"description\": \"Settings controlling eviction of unhealthy hosts from the load balancing pool\",\n \"properties\": {\n \"base_ejection_time\": {\n \"description\": \"Minimum ejection duration. A host will remain ejected for a period equal to the product of minimum ejection duration and the number of times the host has been ejected. This technique allows the system to automatically increase the ejection period for unhealthy upstream servers. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 30s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"consecutive_5xx_errors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool. When the upstream host is accessed over an opaque TCP connection, connect timeouts, connection error/failure and request failure events qualify as a 5xx error. This feature defaults to 5 but can be disabled by setting the value to 0. \\n Note that consecutive_gateway_errors and consecutive_5xx_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_5xx_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_5xx_errors, consecutive_gateway_errors will have no effect.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"consecutive_errors\": {\n \"description\": \"Number of errors before a host is ejected from the connection pool. Defaults to 5. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as an error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as an error. $hide_from_docs\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutive_gateway_errors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as a gateway error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as a gateway error. This feature is disabled by default or when set to the value 0. \\n Note that consecutive_gateway_errors and consecutive_5xx_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_5xx_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_5xx_errors, consecutive_gateway_errors will have no effect.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 10s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_ejection_percent\": {\n \"description\": \"Maximum % of hosts in the load balancing pool for the upstream service that can be ejected. Defaults to 10%.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"min_health_percent\": {\n \"description\": \"Outlier detection will be enabled as long as the associated load balancing pool has at least min_health_percent hosts in healthy mode. When the percentage of healthy hosts in the load balancing pool drops below this threshold, outlier detection will be disabled and the proxy will load balance across all hosts in the pool (healthy and unhealthy). The threshold can be disabled by setting it to 0%. The default is 0% as it's not typically applicable in k8s environments with few pods per service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"port_level_settings\": {\n \"description\": \"Traffic policies specific to individual ports. Note that port level settings will override the destination-level settings. Traffic settings specified at the destination-level will not be inherited when overridden by port-level settings, i.e. default values will be applied to fields omitted in port-level traffic policies.\",\n \"items\": {\n \"description\": \"Traffic policies that apply to specific ports of the service\",\n \"properties\": {\n \"connection_pool\": {\n \"description\": \"Settings controlling the volume of connections to an upstream service\",\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2_upgrade_policy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http1_max_pending_requests\": {\n \"description\": \"Maximum number of pending HTTP requests to a destination. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2_max_requests\": {\n \"description\": \"Maximum number of requests to a backend. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idle_timeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. If not set, the default is 1 hour. When the idle timeout is reached the connection will be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive. Applies to both HTTP1.1 and HTTP2 connections.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_requests_per_connection\": {\n \"description\": \"Maximum number of requests per connection to a backend. Setting this parameter to 1 disables keep alive. Default 0, meaning \\\"unlimited\\\", up to 2^29.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"max_retries\": {\n \"description\": \"Maximum number of retries that can be outstanding to all hosts in a cluster at a given time. Defaults to 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connect_timeout\": {\n \"description\": \"TCP connection timeout. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 10s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_connections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcp_keepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"probes\": {\n \"description\": \"Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"time\": {\n \"description\": \"The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"load_balancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"properties\": {\n \"locality_lb_setting\": {\n \"description\": \"Locality load balancer settings, this will override mesh wide settings in entirety, meaning no merging would be performed between this object and the object one in MeshConfig\",\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute or failover can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/locality_weight) If empty, the locality weight is set according to the endpoints number within it.\",\n \"items\": {\n \"description\": \"Describes how traffic originating in the 'from' zone or sub-zone is distributed over a set of 'to' zones. Syntax for specifying a zone is {region}/{zone}/{sub-zone} and terminal wildcards are allowed on any segment of the specification. Examples: * - matches all localities us-west/* - all zones and sub-zones within the us-west region us-west/zone-1/* - all sub-zones within us-west/zone-1\",\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g. 'region/zone/sub_zone'.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights. The sum of all weights should be == 100. Any locality not assigned a weight will receive no traffic.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety. e.g. true means that turn on locality load balancing for this DestinationRule no matter what mesh wide settings is.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The bool value.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"failover\": {\n \"description\": \"Optional: only failover or distribute can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.\",\n \"items\": {\n \"description\": \"Specify the traffic failover policy across regions. Since zone and sub-zone failover is supported by default this only needs to be specified for regions when the operator needs to constrain traffic failover so that the default behavior of failing over to any endpoint globally does not apply. This is useful when failing over traffic across regions would not improve service health or may need to be restricted for other reasons like regulatory controls.\",\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"description\": \"Destination region the traffic will fail over to when endpoints in the 'from' region becomes unhealthy.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"outlier_detection\": {\n \"description\": \"Settings controlling eviction of unhealthy hosts from the load balancing pool\",\n \"properties\": {\n \"base_ejection_time\": {\n \"description\": \"Minimum ejection duration. A host will remain ejected for a period equal to the product of minimum ejection duration and the number of times the host has been ejected. This technique allows the system to automatically increase the ejection period for unhealthy upstream servers. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 30s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"consecutive_5xx_errors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool. When the upstream host is accessed over an opaque TCP connection, connect timeouts, connection error/failure and request failure events qualify as a 5xx error. This feature defaults to 5 but can be disabled by setting the value to 0. \\n Note that consecutive_gateway_errors and consecutive_5xx_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_5xx_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_5xx_errors, consecutive_gateway_errors will have no effect.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"consecutive_errors\": {\n \"description\": \"Number of errors before a host is ejected from the connection pool. Defaults to 5. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as an error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as an error. $hide_from_docs\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutive_gateway_errors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as a gateway error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as a gateway error. This feature is disabled by default or when set to the value 0. \\n Note that consecutive_gateway_errors and consecutive_5xx_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_5xx_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_5xx_errors, consecutive_gateway_errors will have no effect.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 10s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_ejection_percent\": {\n \"description\": \"Maximum % of hosts in the load balancing pool for the upstream service that can be ejected. Defaults to 10%.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"min_health_percent\": {\n \"description\": \"Outlier detection will be enabled as long as the associated load balancing pool has at least min_health_percent hosts in healthy mode. When the percentage of healthy hosts in the load balancing pool drops below this threshold, outlier detection will be disabled and the proxy will load balance across all hosts in the pool (healthy and unhealthy). The threshold can be disabled by setting it to 0%. The default is 0% as it's not typically applicable in k8s environments with few pods per service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"Specifies the number of a port on the destination service on which this policy is being applied.\",\n \"properties\": {\n \"number\": {\n \"description\": \"Valid port number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"ca_certificates\": {\n \"description\": \"OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will not verify the server's certificate. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"client_certificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"private_key\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`. The path to the file holding the client's private key. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subject_alt_names\": {\n \"description\": \"A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subject_alt_names from the ServiceEntry.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"ca_certificates\": {\n \"description\": \"OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will not verify the server's certificate. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"client_certificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"private_key\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`. The path to the file holding the client's private key. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subject_alt_names\": {\n \"description\": \"A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subject_alt_names from the ServiceEntry.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"traffic_policy\": {\n \"description\": \"Traffic policies to apply (load balancing policy, connection pool sizes, outlier detection).\",\n \"properties\": {\n \"connection_pool\": {\n \"description\": \"Settings controlling the volume of connections to an upstream service\",\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2_upgrade_policy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http1_max_pending_requests\": {\n \"description\": \"Maximum number of pending HTTP requests to a destination. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2_max_requests\": {\n \"description\": \"Maximum number of requests to a backend. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idle_timeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. If not set, the default is 1 hour. When the idle timeout is reached the connection will be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive. Applies to both HTTP1.1 and HTTP2 connections.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_requests_per_connection\": {\n \"description\": \"Maximum number of requests per connection to a backend. Setting this parameter to 1 disables keep alive. Default 0, meaning \\\"unlimited\\\", up to 2^29.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"max_retries\": {\n \"description\": \"Maximum number of retries that can be outstanding to all hosts in a cluster at a given time. Defaults to 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connect_timeout\": {\n \"description\": \"TCP connection timeout. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 10s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_connections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcp_keepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"probes\": {\n \"description\": \"Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"time\": {\n \"description\": \"The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"load_balancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"properties\": {\n \"locality_lb_setting\": {\n \"description\": \"Locality load balancer settings, this will override mesh wide settings in entirety, meaning no merging would be performed between this object and the object one in MeshConfig\",\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute or failover can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/locality_weight) If empty, the locality weight is set according to the endpoints number within it.\",\n \"items\": {\n \"description\": \"Describes how traffic originating in the 'from' zone or sub-zone is distributed over a set of 'to' zones. Syntax for specifying a zone is {region}/{zone}/{sub-zone} and terminal wildcards are allowed on any segment of the specification. Examples: * - matches all localities us-west/* - all zones and sub-zones within the us-west region us-west/zone-1/* - all sub-zones within us-west/zone-1\",\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g. 'region/zone/sub_zone'.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights. The sum of all weights should be == 100. Any locality not assigned a weight will receive no traffic.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety. e.g. true means that turn on locality load balancing for this DestinationRule no matter what mesh wide settings is.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The bool value.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"failover\": {\n \"description\": \"Optional: only failover or distribute can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.\",\n \"items\": {\n \"description\": \"Specify the traffic failover policy across regions. Since zone and sub-zone failover is supported by default this only needs to be specified for regions when the operator needs to constrain traffic failover so that the default behavior of failing over to any endpoint globally does not apply. This is useful when failing over traffic across regions would not improve service health or may need to be restricted for other reasons like regulatory controls.\",\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"description\": \"Destination region the traffic will fail over to when endpoints in the 'from' region becomes unhealthy.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"outlier_detection\": {\n \"description\": \"Settings controlling eviction of unhealthy hosts from the load balancing pool\",\n \"properties\": {\n \"base_ejection_time\": {\n \"description\": \"Minimum ejection duration. A host will remain ejected for a period equal to the product of minimum ejection duration and the number of times the host has been ejected. This technique allows the system to automatically increase the ejection period for unhealthy upstream servers. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 30s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"consecutive_5xx_errors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool. When the upstream host is accessed over an opaque TCP connection, connect timeouts, connection error/failure and request failure events qualify as a 5xx error. This feature defaults to 5 but can be disabled by setting the value to 0. \\n Note that consecutive_gateway_errors and consecutive_5xx_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_5xx_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_5xx_errors, consecutive_gateway_errors will have no effect.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"consecutive_errors\": {\n \"description\": \"Number of errors before a host is ejected from the connection pool. Defaults to 5. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as an error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as an error. $hide_from_docs\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutive_gateway_errors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as a gateway error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as a gateway error. This feature is disabled by default or when set to the value 0. \\n Note that consecutive_gateway_errors and consecutive_5xx_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_5xx_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_5xx_errors, consecutive_gateway_errors will have no effect.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 10s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_ejection_percent\": {\n \"description\": \"Maximum % of hosts in the load balancing pool for the upstream service that can be ejected. Defaults to 10%.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"min_health_percent\": {\n \"description\": \"Outlier detection will be enabled as long as the associated load balancing pool has at least min_health_percent hosts in healthy mode. When the percentage of healthy hosts in the load balancing pool drops below this threshold, outlier detection will be disabled and the proxy will load balance across all hosts in the pool (healthy and unhealthy). The threshold can be disabled by setting it to 0%. The default is 0% as it's not typically applicable in k8s environments with few pods per service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"port_level_settings\": {\n \"description\": \"Traffic policies specific to individual ports. Note that port level settings will override the destination-level settings. Traffic settings specified at the destination-level will not be inherited when overridden by port-level settings, i.e. default values will be applied to fields omitted in port-level traffic policies.\",\n \"items\": {\n \"description\": \"Traffic policies that apply to specific ports of the service\",\n \"properties\": {\n \"connection_pool\": {\n \"description\": \"Settings controlling the volume of connections to an upstream service\",\n \"properties\": {\n \"http\": {\n \"description\": \"HTTP connection pool settings.\",\n \"properties\": {\n \"h2_upgrade_policy\": {\n \"description\": \"Specify if http1.1 connection should be upgraded to http2 for the associated destination.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http1_max_pending_requests\": {\n \"description\": \"Maximum number of pending HTTP requests to a destination. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"http2_max_requests\": {\n \"description\": \"Maximum number of requests to a backend. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"idle_timeout\": {\n \"description\": \"The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. If not set, the default is 1 hour. When the idle timeout is reached the connection will be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive. Applies to both HTTP1.1 and HTTP2 connections.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_requests_per_connection\": {\n \"description\": \"Maximum number of requests per connection to a backend. Setting this parameter to 1 disables keep alive. Default 0, meaning \\\"unlimited\\\", up to 2^29.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"max_retries\": {\n \"description\": \"Maximum number of retries that can be outstanding to all hosts in a cluster at a given time. Defaults to 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tcp\": {\n \"description\": \"Settings common to both HTTP and TCP upstream connections.\",\n \"properties\": {\n \"connect_timeout\": {\n \"description\": \"TCP connection timeout. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 10s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_connections\": {\n \"description\": \"Maximum number of HTTP1 /TCP connections to a destination host. Default 2^32-1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcp_keepalive\": {\n \"description\": \"If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"probes\": {\n \"description\": \"Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"time\": {\n \"description\": \"The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"load_balancer\": {\n \"description\": \"Settings controlling the load balancer algorithms.\",\n \"properties\": {\n \"locality_lb_setting\": {\n \"description\": \"Locality load balancer settings, this will override mesh wide settings in entirety, meaning no merging would be performed between this object and the object one in MeshConfig\",\n \"properties\": {\n \"distribute\": {\n \"description\": \"Optional: only one of distribute or failover can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/locality_weight) If empty, the locality weight is set according to the endpoints number within it.\",\n \"items\": {\n \"description\": \"Describes how traffic originating in the 'from' zone or sub-zone is distributed over a set of 'to' zones. Syntax for specifying a zone is {region}/{zone}/{sub-zone} and terminal wildcards are allowed on any segment of the specification. Examples: * - matches all localities us-west/* - all zones and sub-zones within the us-west region us-west/zone-1/* - all sub-zones within us-west/zone-1\",\n \"properties\": {\n \"from\": {\n \"description\": \"Originating locality, '/' separated, e.g. 'region/zone/sub_zone'.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"additionalProperties\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"description\": \"Map of upstream localities to traffic distribution weights. The sum of all weights should be == 100. Any locality not assigned a weight will receive no traffic.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enabled\": {\n \"description\": \"enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety. e.g. true means that turn on locality load balancing for this DestinationRule no matter what mesh wide settings is.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The bool value.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"failover\": {\n \"description\": \"Optional: only failover or distribute can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.\",\n \"items\": {\n \"description\": \"Specify the traffic failover policy across regions. Since zone and sub-zone failover is supported by default this only needs to be specified for regions when the operator needs to constrain traffic failover so that the default behavior of failing over to any endpoint globally does not apply. This is useful when failing over traffic across regions would not improve service health or may need to be restricted for other reasons like regulatory controls.\",\n \"properties\": {\n \"from\": {\n \"description\": \"Originating region.\",\n \"type\": \"string\"\n },\n \"to\": {\n \"description\": \"Destination region the traffic will fail over to when endpoints in the 'from' region becomes unhealthy.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"outlier_detection\": {\n \"description\": \"Settings controlling eviction of unhealthy hosts from the load balancing pool\",\n \"properties\": {\n \"base_ejection_time\": {\n \"description\": \"Minimum ejection duration. A host will remain ejected for a period equal to the product of minimum ejection duration and the number of times the host has been ejected. This technique allows the system to automatically increase the ejection period for unhealthy upstream servers. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 30s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"consecutive_5xx_errors\": {\n \"description\": \"Number of 5xx errors before a host is ejected from the connection pool. When the upstream host is accessed over an opaque TCP connection, connect timeouts, connection error/failure and request failure events qualify as a 5xx error. This feature defaults to 5 but can be disabled by setting the value to 0. \\n Note that consecutive_gateway_errors and consecutive_5xx_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_5xx_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_5xx_errors, consecutive_gateway_errors will have no effect.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"consecutive_errors\": {\n \"description\": \"Number of errors before a host is ejected from the connection pool. Defaults to 5. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as an error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as an error. $hide_from_docs\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"consecutive_gateway_errors\": {\n \"description\": \"Number of gateway errors before a host is ejected from the connection pool. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as a gateway error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as a gateway error. This feature is disabled by default or when set to the value 0. \\n Note that consecutive_gateway_errors and consecutive_5xx_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_5xx_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_5xx_errors, consecutive_gateway_errors will have no effect.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"interval\": {\n \"description\": \"Time interval between ejection sweep analysis. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms. Default is 10s.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"max_ejection_percent\": {\n \"description\": \"Maximum % of hosts in the load balancing pool for the upstream service that can be ejected. Defaults to 10%.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"min_health_percent\": {\n \"description\": \"Outlier detection will be enabled as long as the associated load balancing pool has at least min_health_percent hosts in healthy mode. When the percentage of healthy hosts in the load balancing pool drops below this threshold, outlier detection will be disabled and the proxy will load balance across all hosts in the pool (healthy and unhealthy). The threshold can be disabled by setting it to 0%. The default is 0% as it's not typically applicable in k8s environments with few pods per service.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"Specifies the number of a port on the destination service on which this policy is being applied.\",\n \"properties\": {\n \"number\": {\n \"description\": \"Valid port number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"ca_certificates\": {\n \"description\": \"OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will not verify the server's certificate. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"client_certificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"private_key\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`. The path to the file holding the client's private key. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subject_alt_names\": {\n \"description\": \"A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subject_alt_names from the ServiceEntry.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"TLS related settings for connections to the upstream service.\",\n \"properties\": {\n \"ca_certificates\": {\n \"description\": \"OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will not verify the server's certificate. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"client_certificate\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"private_key\": {\n \"description\": \"REQUIRED if mode is `MUTUAL`. The path to the file holding the client's private key. Should be empty if mode is `ISTIO_MUTUAL`.\",\n \"type\": \"string\"\n },\n \"sni\": {\n \"description\": \"SNI string to present to the server during TLS handshake.\",\n \"type\": \"string\"\n },\n \"subject_alt_names\": {\n \"description\": \"A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subject_alt_names from the ServiceEntry.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Service Policy\",\n \"type\": \"object\"\n}", + "version": "servicemesh.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Service Policy", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/StorageClassCapability.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/StorageClassCapability.json new file mode 100644 index 00000000000..ff25a405671 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/StorageClassCapability.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "StorageClassCapability", + "schema": "{\n \"description\": \"StorageClassCapability is the Schema for the storage class capability API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"StorageClassCapabilitySpec defines the desired state of StorageClassCapability\",\n \"properties\": {\n \"features\": {\n \"description\": \"CapabilityFeatures describe storage features\",\n \"properties\": {\n \"snapshot\": {\n \"description\": \"SnapshotFeature describe snapshot features\",\n \"properties\": {\n \"create\": {\n \"type\": \"boolean\"\n },\n \"list\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"create\",\n \"list\"\n ],\n \"type\": \"object\"\n },\n \"topology\": {\n \"type\": \"boolean\"\n },\n \"volume\": {\n \"description\": \"VolumeFeature describe volume features\",\n \"properties\": {\n \"attach\": {\n \"type\": \"boolean\"\n },\n \"clone\": {\n \"type\": \"boolean\"\n },\n \"create\": {\n \"type\": \"boolean\"\n },\n \"expandMode\": {\n \"type\": \"string\"\n },\n \"list\": {\n \"type\": \"boolean\"\n },\n \"stats\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"attach\",\n \"clone\",\n \"create\",\n \"expandMode\",\n \"list\",\n \"stats\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"snapshot\",\n \"topology\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"provisioner\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"features\",\n \"provisioner\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Storage Class Capability\",\n \"type\": \"object\"\n}", + "version": "storage.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Storage Class Capability", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Strategy.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Strategy.json new file mode 100644 index 00000000000..77608d644bd --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Strategy.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Strategy", + "schema": "{\n \"description\": \"Strategy is the Schema for the strategies API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"StrategySpec defines the desired state of Strategy\",\n \"properties\": {\n \"governor\": {\n \"description\": \"Governor version, the version takes control of all incoming traffic label version value\",\n \"type\": \"string\"\n },\n \"principal\": {\n \"description\": \"Principal version, the one as reference version label version value\",\n \"type\": \"string\"\n },\n \"selector\": {\n \"description\": \"Label selector for virtual services.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"strategyPolicy\": {\n \"description\": \"strategy policy, how the strategy will be applied by the strategy controller\",\n \"type\": \"string\"\n },\n \"template\": {\n \"description\": \"Template describes the virtual service that will be created.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata of the virtual services created from this template\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Spec indicates the behavior of a virtual service.\",\n \"properties\": {\n \"export_to\": {\n \"description\": \"A list of namespaces to which this virtual service is exported. Exporting a virtual service allows it to be used by sidecars and gateways defined in other namespaces. This feature provides a mechanism for service owners and mesh administrators to control the visibility of virtual services across namespace boundaries. \\n If no namespaces are specified then the virtual service is exported to all namespaces by default. \\n The value \\\".\\\" is reserved and defines an export to the same namespace that the virtual service is declared in. Similarly the value \\\"*\\\" is reserved and defines an export to all namespaces. \\n NOTE: in the current release, the `exportTo` value is restricted to \\\".\\\" or \\\"*\\\" (i.e., the current namespace or all namespaces).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"The names of gateways and sidecars that should apply these routes. Gateways in other namespaces may be referred to by `\\u003cgateway namespace\\u003e/\\u003cgateway name\\u003e`; specifying a gateway with no namespace qualifier is the same as specifying the VirtualService's namespace. A single VirtualService is used for sidecars inside the mesh as well as for one or more gateways. The selection condition imposed by this field can be overridden using the source field in the match conditions of protocol-specific routes. The reserved word `mesh` is used to imply all the sidecars in the mesh. When this field is omitted, the default gateway (`mesh`) will be used, which would apply the rule to all sidecars in the mesh. If a list of gateway names is provided, the rules will apply only to the gateways. To apply the rules to both gateways and sidecars, specify `mesh` as one of the gateway names.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"hosts\": {\n \"description\": \"The destination hosts to which traffic is being sent. Could be a DNS name with wildcard prefix or an IP address. Depending on the platform, short-names can also be used instead of a FQDN (i.e. has no dots in the name). In such a scenario, the FQDN of the host would be derived based on the underlying platform. \\n A single VirtualService can be used to describe all the traffic properties of the corresponding hosts, including those for multiple HTTP and TCP ports. Alternatively, the traffic properties of a host can be defined using more than one VirtualService, with certain caveats. Refer to the [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services) for details. \\n *Note for Kubernetes users*: When short names are used (e.g. \\\"reviews\\\" instead of \\\"reviews.default.svc.cluster.local\\\"), Istio will interpret the short name based on the namespace of the rule, not the service. A rule in the \\\"default\\\" namespace containing a host \\\"reviews\\\" will be interpreted as \\\"reviews.default.svc.cluster.local\\\", irrespective of the actual namespace associated with the reviews service. _To avoid potential misconfigurations, it is recommended to always use fully qualified domain names over short names._ \\n The hosts field applies to both HTTP and TCP services. Service inside the mesh, i.e., those found in the service registry, must always be referred to using their alphanumeric names. IP addresses are allowed only for services defined via the Gateway. \\n *Note*: It must be empty for a delegate VirtualService.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"http\": {\n \"description\": \"An ordered list of route rules for HTTP traffic. HTTP routes will be applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching an incoming request is used.\",\n \"items\": {\n \"description\": \"Describes match conditions and actions for routing HTTP/1.1, HTTP2, and gRPC traffic. See VirtualService for usage examples.\",\n \"properties\": {\n \"cors_policy\": {\n \"description\": \"Cross-Origin Resource Sharing policy (CORS). Refer to [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) for further details about cross origin resource sharing.\",\n \"properties\": {\n \"allow_credentials\": {\n \"description\": \"Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials. Translates to `Access-Control-Allow-Credentials` header.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The bool value.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"allow_headers\": {\n \"description\": \"List of HTTP headers that can be used when requesting the resource. Serialized to Access-Control-Allow-Headers header.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allow_methods\": {\n \"description\": \"List of HTTP methods allowed to access the resource. The content will be serialized into the Access-Control-Allow-Methods header.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allow_origin\": {\n \"description\": \"The list of origins that are allowed to perform CORS requests. The content will be serialized into the Access-Control-Allow-Origin header. Wildcard * will allow all origins. $hide_from_docs\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allow_origins\": {\n \"description\": \"String patterns that match allowed origins. An origin is allowed if any of the string matchers match. If a match is found, then the outgoing Access-Control-Allow-Origin would be set to the origin as provided by the client.\",\n \"items\": {\n \"description\": \"Describes how to match a given string in HTTP headers. Match is case-sensitive.\",\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"expose_headers\": {\n \"description\": \"A white list of HTTP headers that the browsers are allowed to access. Serialized into Access-Control-Expose-Headers header.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"max_age\": {\n \"description\": \"Specifies how long the results of a preflight request can be cached. Translates to the `Access-Control-Max-Age` header.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"delegate\": {\n \"description\": \"Delegate is used to specify the particular VirtualService which can be used to define delegate HTTPRoute. It can be set only when `Route` and `Redirect` are empty, and the route rules of the delegate VirtualService will be merged with that in the current one. **NOTE**: 1. Only one level delegation is supported. 2. The delegate's HTTPMatchRequest must be a strict subset of the root's, otherwise there is a conflict and the HTTPRoute will not take effect.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name specifies the name of the delegate VirtualService.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace specifies the namespace where the delegate VirtualService resides. By default, it is same to the root's.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fault\": {\n \"description\": \"Fault injection policy to apply on HTTP traffic at the client side. Note that timeouts or retries will not be enabled when faults are enabled on the client side.\",\n \"properties\": {\n \"abort\": {\n \"description\": \"Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty.\",\n \"properties\": {\n \"percentage\": {\n \"description\": \"Percentage of requests to be aborted with the error code provided.\",\n \"properties\": {\n \"value\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"delay\": {\n \"description\": \"Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc.\",\n \"properties\": {\n \"percent\": {\n \"description\": \"Percentage of requests on which the delay will be injected (0-100). Use of integer `percent` value is deprecated. Use the double `percentage` field instead.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"percentage\": {\n \"description\": \"Percentage of requests on which the delay will be injected.\",\n \"properties\": {\n \"value\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"headers\": {\n \"description\": \"Header manipulation rules\",\n \"properties\": {\n \"request\": {\n \"description\": \"Header manipulation rules to apply before forwarding a request to the destination service\",\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Append the given values to the headers specified by keys (will create a comma-separated list of values)\",\n \"type\": \"object\"\n },\n \"remove\": {\n \"description\": \"Remove a the specified headers\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Overwrite the headers specified by key with the given values\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"response\": {\n \"description\": \"Header manipulation rules to apply before returning a response to the caller\",\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Append the given values to the headers specified by keys (will create a comma-separated list of values)\",\n \"type\": \"object\"\n },\n \"remove\": {\n \"description\": \"Remove a the specified headers\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Overwrite the headers specified by key with the given values\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"match\": {\n \"description\": \"Match conditions to be satisfied for the rule to be activated. All conditions inside a single match block have AND semantics, while the list of match blocks have OR semantics. The rule is matched if any one of the match blocks succeed.\",\n \"items\": {\n \"description\": \"HttpMatchRequest specifies a set of criterion to be met in order for the rule to be applied to the HTTP request. For example, the following restricts the rule to match only requests where the URL path starts with /ratings/v2/ and the request contains a custom `end-user` header with value `jason`. \\n {{\\u003ctabset category-name=\\\"example\\\"\\u003e}} {{\\u003ctab name=\\\"v1alpha3\\\" category-value=\\\"v1alpha3\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: ratings-route spec: hosts: - ratings.prod.svc.cluster.local http: - match: - headers: end-user: exact: jason uri: prefix: \\\"/ratings/v2/\\\" ignoreUriCase: true route: - destination: host: ratings.prod.svc.cluster.local ``` {{\\u003c/tab\\u003e}} \\n {{\\u003ctab name=\\\"v1beta1\\\" category-value=\\\"v1beta1\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: ratings-route spec: hosts: - ratings.prod.svc.cluster.local http: - match: - headers: end-user: exact: jason uri: prefix: \\\"/ratings/v2/\\\" ignoreUriCase: true route: - destination: host: ratings.prod.svc.cluster.local ``` {{\\u003c/tab\\u003e}} {{\\u003c/tabset\\u003e}} \\n HTTPMatchRequest CANNOT be empty. **Note:** No regex string match can be set when delegate VirtualService is specified.\",\n \"properties\": {\n \"authority\": {\n \"description\": \"HTTP Authority values are case-sensitive and formatted as follows: \\n - `exact: \\\"value\\\"` for exact string match \\n - `prefix: \\\"value\\\"` for prefix-based match \\n - `regex: \\\"value\\\"` for ECMAscript style regex-based match\",\n \"type\": \"object\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied. Gateway names in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway match is independent of sourceLabels.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"description\": \"Describes how to match a given string in HTTP headers. Match is case-sensitive.\",\n \"type\": \"object\"\n },\n \"description\": \"The header keys must be lowercase and use hyphen as the separator, e.g. _x-request-id_. \\n Header values are case-sensitive and formatted as follows: \\n - `exact: \\\"value\\\"` for exact string match \\n - `prefix: \\\"value\\\"` for prefix-based match \\n - `regex: \\\"value\\\"` for ECMAscript style regex-based match \\n If the value is empty and only the name of header is specfied, presence of the header is checked. **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.\",\n \"type\": \"object\"\n },\n \"ignore_uri_case\": {\n \"description\": \"Flag to specify whether the URI matching should be case-insensitive. \\n **Note:** The case will be ignored only in the case of `exact` and `prefix` URI matches.\",\n \"type\": \"boolean\"\n },\n \"method\": {\n \"description\": \"HTTP Method values are case-sensitive and formatted as follows: \\n - `exact: \\\"value\\\"` for exact string match \\n - `prefix: \\\"value\\\"` for prefix-based match \\n - `regex: \\\"value\\\"` for ECMAscript style regex-based match\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name assigned to a match. The match's name will be concatenated with the parent route's name and will be logged in the access logs for requests matching this route.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the ports on the host that is being addressed. Many services only expose a single port or label ports with the protocols they support, in these cases it is not required to explicitly select the port.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"query_params\": {\n \"additionalProperties\": {\n \"description\": \"Describes how to match a given string in HTTP headers. Match is case-sensitive.\",\n \"type\": \"object\"\n },\n \"description\": \"Query parameters for matching. \\n Ex: - For a query parameter like \\\"?key=true\\\", the map key would be \\\"key\\\" and the string match could be defined as `exact: \\\"true\\\"`. - For a query parameter like \\\"?key\\\", the map key would be \\\"key\\\" and the string match could be defined as `exact: \\\"\\\"`. - For a query parameter like \\\"?key=123\\\", the map key would be \\\"key\\\" and the string match could be defined as `regex: \\\"\\\\d+$\\\"`. Note that this configuration will only match values like \\\"123\\\" but not \\\"a123\\\" or \\\"123a\\\". \\n **Note:** `prefix` matching is currently not supported.\",\n \"type\": \"object\"\n },\n \"scheme\": {\n \"description\": \"URI Scheme values are case-sensitive and formatted as follows: \\n - `exact: \\\"value\\\"` for exact string match \\n - `prefix: \\\"value\\\"` for prefix-based match \\n - `regex: \\\"value\\\"` for ECMAscript style regex-based match\",\n \"type\": \"object\"\n },\n \"source_labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels that constrain the applicability of a rule to workloads with the given labels. If the VirtualService has a list of gateways specified in the top-level `gateways` field, it must include the reserved gateway `mesh` for this field to be applicable.\",\n \"type\": \"object\"\n },\n \"source_namespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace. If the VirtualService has a list of gateways specified in the top-level `gateways` field, it must include the reserved gateway `mesh` for this field to be applicable.\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"URI to match values are case-sensitive and formatted as follows: \\n - `exact: \\\"value\\\"` for exact string match \\n - `prefix: \\\"value\\\"` for prefix-based match \\n - `regex: \\\"value\\\"` for ECMAscript style regex-based match \\n **Note:** Case-insensitive matching could be enabled via the `ignore_uri_case` flag.\",\n \"type\": \"object\"\n },\n \"without_headers\": {\n \"additionalProperties\": {\n \"description\": \"Describes how to match a given string in HTTP headers. Match is case-sensitive.\",\n \"type\": \"object\"\n },\n \"description\": \"withoutHeader has the same syntax with the header, but has opposite meaning. If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"mirror\": {\n \"description\": \"Mirror HTTP traffic to a another destination in addition to forwarding the requests to the intended destination. Mirrored traffic is on a best effort basis where the sidecar/gateway will not wait for the mirrored cluster to respond before returning the response from the original destination. Statistics will be generated for the mirrored destination.\",\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry. Service names are looked up from the platform's service registry (e.g., Kubernetes services, Consul services, etc.) and from the hosts declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to destinations that are not found in either of the two, will be dropped. \\n *Note for Kubernetes users*: When short names are used (e.g. \\\"reviews\\\" instead of \\\"reviews.default.svc.cluster.local\\\"), Istio will interpret the short name based on the namespace of the rule, not the service. A rule in the \\\"default\\\" namespace containing a host \\\"reviews will be interpreted as \\\"reviews.default.svc.cluster.local\\\", irrespective of the actual namespace associated with the reviews service. To avoid potential misconfiguration, it is recommended to always use fully qualified domain names over short names.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed. If a service exposes only a single port it is not required to explicitly select the port.\",\n \"properties\": {\n \"number\": {\n \"description\": \"Valid port number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service. Applicable only to services within the mesh. The subset must be defined in a corresponding DestinationRule.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mirror_percent\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field. Use of integer `mirror_percent` value is deprecated. Use the double `mirror_percentage` field instead\",\n \"properties\": {\n \"value\": {\n \"description\": \"The uint32 value.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"mirror_percentage\": {\n \"description\": \"Percentage of the traffic to be mirrored by the `mirror` field. If this field is absent, all the traffic (100%) will be mirrored. Max value is 100.\",\n \"properties\": {\n \"value\": {\n \"type\": \"number\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name assigned to the route for debugging purposes. The route's name will be concatenated with the match's name and will be logged in the access logs for requests matching this route/match.\",\n \"type\": \"string\"\n },\n \"redirect\": {\n \"description\": \"A HTTP rule can either redirect or forward (default) traffic. If traffic passthrough option is specified in the rule, route/redirect will be ignored. The redirect primitive can be used to send a HTTP 301 redirect to a different URI or Authority.\",\n \"properties\": {\n \"authority\": {\n \"description\": \"On a redirect, overwrite the Authority/Host portion of the URL with this value.\",\n \"type\": \"string\"\n },\n \"redirect_code\": {\n \"description\": \"On a redirect, Specifies the HTTP status code to use in the redirect response. The default response code is MOVED_PERMANENTLY (301).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"uri\": {\n \"description\": \"On a redirect, overwrite the Path portion of the URL with this value. Note that the entire path will be replaced, irrespective of the request URI being matched as an exact path or prefix.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"retries\": {\n \"description\": \"Retry policy for HTTP requests.\",\n \"properties\": {\n \"attempts\": {\n \"description\": \"Number of retries for a given request. The interval between retries will be determined automatically (25ms+). Actual number of retries attempted depends on the request `timeout` of the [HTTP route](https://istio.io/docs/reference/config/networking/virtual-service/#HTTPRoute).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"per_try_timeout\": {\n \"description\": \"Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE \\u003e=1ms.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"retry_on\": {\n \"description\": \"Specifies the conditions under which retry takes place. One or more policies can be specified using a ‘,’ delimited list. See the [retry policies](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on) and [gRPC retry policies](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-grpc-on) for more details.\",\n \"type\": \"string\"\n },\n \"retry_remote_localities\": {\n \"description\": \"Flag to specify whether the retries should retry to other localities. See the [retry plugin configuration](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http/http_connection_management#retry-plugin-configuration) for more details.\",\n \"properties\": {\n \"value\": {\n \"description\": \"The bool value.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"rewrite\": {\n \"description\": \"Rewrite HTTP URIs and Authority headers. Rewrite cannot be used with Redirect primitive. Rewrite will be performed before forwarding.\",\n \"properties\": {\n \"authority\": {\n \"description\": \"rewrite the Authority/Host header with this value.\",\n \"type\": \"string\"\n },\n \"uri\": {\n \"description\": \"rewrite the path (or the prefix) portion of the URI with this value. If the original URI was matched based on prefix, the value provided in this field will replace the corresponding matched prefix.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"route\": {\n \"description\": \"A HTTP rule can either redirect or forward (default) traffic. The forwarding target can be one of several versions of a service (see glossary in beginning of document). Weights associated with the service version determine the proportion of traffic it receives.\",\n \"items\": {\n \"description\": \"Each routing rule is associated with one or more service versions (see glossary in beginning of document). Weights associated with the version determine the proportion of traffic it receives. For example, the following rule will route 25% of traffic for the \\\"reviews\\\" service to instances with the \\\"v2\\\" tag and the remaining traffic (i.e., 75%) to \\\"v1\\\". \\n {{\\u003ctabset category-name=\\\"example\\\"\\u003e}} {{\\u003ctab name=\\\"v1alpha3\\\" category-value=\\\"v1alpha3\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews-route spec: hosts: - reviews.prod.svc.cluster.local http: - route: - destination: host: reviews.prod.svc.cluster.local subset: v2 weight: 25 - destination: host: reviews.prod.svc.cluster.local subset: v1 weight: 75 ``` {{\\u003c/tab\\u003e}} \\n {{\\u003ctab name=\\\"v1beta1\\\" category-value=\\\"v1beta1\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: reviews-route spec: hosts: - reviews.prod.svc.cluster.local http: - route: - destination: host: reviews.prod.svc.cluster.local subset: v2 weight: 25 - destination: host: reviews.prod.svc.cluster.local subset: v1 weight: 75 ``` {{\\u003c/tab\\u003e}} {{\\u003c/tabset\\u003e}} \\n And the associated DestinationRule \\n {{\\u003ctabset category-name=\\\"example\\\"\\u003e}} {{\\u003ctab name=\\\"v1alpha3\\\" category-value=\\\"v1alpha3\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: reviews-destination spec: host: reviews.prod.svc.cluster.local subsets: - name: v1 labels: version: v1 - name: v2 labels: version: v2 ``` {{\\u003c/tab\\u003e}} \\n {{\\u003ctab name=\\\"v1beta1\\\" category-value=\\\"v1beta1\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: reviews-destination spec: host: reviews.prod.svc.cluster.local subsets: - name: v1 labels: version: v1 - name: v2 labels: version: v2 ``` {{\\u003c/tab\\u003e}} {{\\u003c/tabset\\u003e}} \\n Traffic can also be split across two entirely different services without having to define new subsets. For example, the following rule forwards 25% of traffic to reviews.com to dev.reviews.com \\n {{\\u003ctabset category-name=\\\"example\\\"\\u003e}} {{\\u003ctab name=\\\"v1alpha3\\\" category-value=\\\"v1alpha3\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews-route-two-domains spec: hosts: - reviews.com http: - route: - destination: host: dev.reviews.com weight: 25 - destination: host: reviews.com weight: 75 ``` {{\\u003c/tab\\u003e}} \\n {{\\u003ctab name=\\\"v1beta1\\\" category-value=\\\"v1beta1\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: reviews-route-two-domains spec: hosts: - reviews.com http: - route: - destination: host: dev.reviews.com weight: 25 - destination: host: reviews.com weight: 75 ``` {{\\u003c/tab\\u003e}} {{\\u003c/tabset\\u003e}}\",\n \"properties\": {\n \"destination\": {\n \"description\": \"Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to.\",\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry. Service names are looked up from the platform's service registry (e.g., Kubernetes services, Consul services, etc.) and from the hosts declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to destinations that are not found in either of the two, will be dropped. \\n *Note for Kubernetes users*: When short names are used (e.g. \\\"reviews\\\" instead of \\\"reviews.default.svc.cluster.local\\\"), Istio will interpret the short name based on the namespace of the rule, not the service. A rule in the \\\"default\\\" namespace containing a host \\\"reviews will be interpreted as \\\"reviews.default.svc.cluster.local\\\", irrespective of the actual namespace associated with the reviews service. To avoid potential misconfiguration, it is recommended to always use fully qualified domain names over short names.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed. If a service exposes only a single port it is not required to explicitly select the port.\",\n \"properties\": {\n \"number\": {\n \"description\": \"Valid port number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service. Applicable only to services within the mesh. The subset must be defined in a corresponding DestinationRule.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"headers\": {\n \"description\": \"Header manipulation rules\",\n \"properties\": {\n \"request\": {\n \"description\": \"Header manipulation rules to apply before forwarding a request to the destination service\",\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Append the given values to the headers specified by keys (will create a comma-separated list of values)\",\n \"type\": \"object\"\n },\n \"remove\": {\n \"description\": \"Remove a the specified headers\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Overwrite the headers specified by key with the given values\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"response\": {\n \"description\": \"Header manipulation rules to apply before returning a response to the caller\",\n \"properties\": {\n \"add\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Append the given values to the headers specified by keys (will create a comma-separated list of values)\",\n \"type\": \"object\"\n },\n \"remove\": {\n \"description\": \"Remove a the specified headers\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"set\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Overwrite the headers specified by key with the given values\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"The proportion of traffic to be forwarded to the service version. (0-100). Sum of weights across destinations SHOULD BE == 100. If there is only one destination in a rule, the weight value is assumed to be 100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"timeout\": {\n \"description\": \"Timeout for HTTP requests.\",\n \"properties\": {\n \"nanos\": {\n \"description\": \"Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"seconds\": {\n \"description\": \"Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tcp\": {\n \"description\": \"An ordered list of route rules for opaque TCP traffic. TCP routes will be applied to any port that is not a HTTP or TLS port. The first rule matching an incoming request is used.\",\n \"items\": {\n \"description\": \"Describes match conditions and actions for routing TCP traffic. The following routing rule forwards traffic arriving at port 27017 for mongo.prod.svc.cluster.local to another Mongo server on port 5555. \\n {{\\u003ctabset category-name=\\\"example\\\"\\u003e}} {{\\u003ctab name=\\\"v1alpha3\\\" category-value=\\\"v1alpha3\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: bookinfo-Mongo spec: hosts: - mongo.prod.svc.cluster.local tcp: - match: - port: 27017 route: - destination: host: mongo.backup.svc.cluster.local port: number: 5555 ``` {{\\u003c/tab\\u003e}} \\n {{\\u003ctab name=\\\"v1beta1\\\" category-value=\\\"v1beta1\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: bookinfo-Mongo spec: hosts: - mongo.prod.svc.cluster.local tcp: - match: - port: 27017 route: - destination: host: mongo.backup.svc.cluster.local port: number: 5555 ``` {{\\u003c/tab\\u003e}} {{\\u003c/tabset\\u003e}}\",\n \"properties\": {\n \"match\": {\n \"description\": \"Match conditions to be satisfied for the rule to be activated. All conditions inside a single match block have AND semantics, while the list of match blocks have OR semantics. The rule is matched if any one of the match blocks succeed.\",\n \"items\": {\n \"description\": \"L4 connection match attributes. Note that L4 connection matching support is incomplete.\",\n \"properties\": {\n \"destination_subnets\": {\n \"description\": \"IPv4 or IPv6 ip addresses of destination with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied. Gateway names in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway match is independent of sourceLabels.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed. Many services only expose a single port or label ports with the protocols they support, in these cases it is not required to explicitly select the port.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"source_labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels that constrain the applicability of a rule to workloads with the given labels. If the VirtualService has a list of gateways specified in the top-level `gateways` field, it should include the reserved gateway `mesh` in order for this field to be applicable.\",\n \"type\": \"object\"\n },\n \"source_namespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace. If the VirtualService has a list of gateways specified in the top-level `gateways` field, it must include the reserved gateway `mesh` for this field to be applicable.\",\n \"type\": \"string\"\n },\n \"source_subnet\": {\n \"description\": \"IPv4 or IPv6 ip address of source with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d $hide_from_docs\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"route\": {\n \"description\": \"The destination to which the connection should be forwarded to.\",\n \"items\": {\n \"description\": \"L4 routing rule weighted destination.\",\n \"properties\": {\n \"destination\": {\n \"description\": \"Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to.\",\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry. Service names are looked up from the platform's service registry (e.g., Kubernetes services, Consul services, etc.) and from the hosts declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to destinations that are not found in either of the two, will be dropped. \\n *Note for Kubernetes users*: When short names are used (e.g. \\\"reviews\\\" instead of \\\"reviews.default.svc.cluster.local\\\"), Istio will interpret the short name based on the namespace of the rule, not the service. A rule in the \\\"default\\\" namespace containing a host \\\"reviews will be interpreted as \\\"reviews.default.svc.cluster.local\\\", irrespective of the actual namespace associated with the reviews service. To avoid potential misconfiguration, it is recommended to always use fully qualified domain names over short names.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed. If a service exposes only a single port it is not required to explicitly select the port.\",\n \"properties\": {\n \"number\": {\n \"description\": \"Valid port number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service. Applicable only to services within the mesh. The subset must be defined in a corresponding DestinationRule.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"The proportion of traffic to be forwarded to the service version. If there is only one destination in a rule, all traffic will be routed to it irrespective of the weight.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tls\": {\n \"description\": \"An ordered list of route rule for non-terminated TLS \\u0026 HTTPS traffic. Routing is typically performed using the SNI value presented by the ClientHello message. TLS routes will be applied to platform service ports named 'https-*', 'tls-*', unterminated gateway ports using HTTPS/TLS protocols (i.e. with \\\"passthrough\\\" TLS mode) and service entry ports using HTTPS/TLS protocols. The first rule matching an incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports without associated virtual service will be treated as opaque TCP traffic.\",\n \"items\": {\n \"description\": \"Describes match conditions and actions for routing unterminated TLS traffic (TLS/HTTPS) The following routing rule forwards unterminated TLS traffic arriving at port 443 of gateway called \\\"mygateway\\\" to internal services in the mesh based on the SNI value. \\n {{\\u003ctabset category-name=\\\"example\\\"\\u003e}} {{\\u003ctab name=\\\"v1alpha3\\\" category-value=\\\"v1alpha3\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: bookinfo-sni spec: hosts: - \\\"*.bookinfo.com\\\" gateways: - mygateway tls: - match: - port: 443 sniHosts: - login.bookinfo.com route: - destination: host: login.prod.svc.cluster.local - match: - port: 443 sniHosts: - reviews.bookinfo.com route: - destination: host: reviews.prod.svc.cluster.local ``` {{\\u003c/tab\\u003e}} \\n {{\\u003ctab name=\\\"v1beta1\\\" category-value=\\\"v1beta1\\\"\\u003e}} ```yaml apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: bookinfo-sni spec: hosts: - \\\"*.bookinfo.com\\\" gateways: - mygateway tls: - match: - port: 443 sniHosts: - login.bookinfo.com route: - destination: host: login.prod.svc.cluster.local - match: - port: 443 sniHosts: - reviews.bookinfo.com route: - destination: host: reviews.prod.svc.cluster.local ``` {{\\u003c/tab\\u003e}} {{\\u003c/tabset\\u003e}}\",\n \"properties\": {\n \"match\": {\n \"description\": \"Match conditions to be satisfied for the rule to be activated. All conditions inside a single match block have AND semantics, while the list of match blocks have OR semantics. The rule is matched if any one of the match blocks succeed.\",\n \"items\": {\n \"description\": \"TLS connection match attributes.\",\n \"properties\": {\n \"destination_subnets\": {\n \"description\": \"IPv4 or IPv6 ip addresses of destination with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"gateways\": {\n \"description\": \"Names of gateways where the rule should be applied. Gateway names in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway match is independent of sourceLabels.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed. Many services only expose a single port or label ports with the protocols they support, in these cases it is not required to explicitly select the port.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sni_hosts\": {\n \"description\": \"SNI (server name indicator) to match on. Wildcard prefixes can be used in the SNI value, e.g., *.com will match foo.example.com as well as example.com. An SNI value must be a subset (i.e., fall within the domain) of the corresponding virtual serivce's hosts.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"source_labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"One or more labels that constrain the applicability of a rule to workloads with the given labels. If the VirtualService has a list of gateways specified in the top-level `gateways` field, it should include the reserved gateway `mesh` in order for this field to be applicable.\",\n \"type\": \"object\"\n },\n \"source_namespace\": {\n \"description\": \"Source namespace constraining the applicability of a rule to workloads in that namespace. If the VirtualService has a list of gateways specified in the top-level `gateways` field, it must include the reserved gateway `mesh` for this field to be applicable.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"route\": {\n \"description\": \"The destination to which the connection should be forwarded to.\",\n \"items\": {\n \"description\": \"L4 routing rule weighted destination.\",\n \"properties\": {\n \"destination\": {\n \"description\": \"Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to.\",\n \"properties\": {\n \"host\": {\n \"description\": \"The name of a service from the service registry. Service names are looked up from the platform's service registry (e.g., Kubernetes services, Consul services, etc.) and from the hosts declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to destinations that are not found in either of the two, will be dropped. \\n *Note for Kubernetes users*: When short names are used (e.g. \\\"reviews\\\" instead of \\\"reviews.default.svc.cluster.local\\\"), Istio will interpret the short name based on the namespace of the rule, not the service. A rule in the \\\"default\\\" namespace containing a host \\\"reviews will be interpreted as \\\"reviews.default.svc.cluster.local\\\", irrespective of the actual namespace associated with the reviews service. To avoid potential misconfiguration, it is recommended to always use fully qualified domain names over short names.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Specifies the port on the host that is being addressed. If a service exposes only a single port it is not required to explicitly select the port.\",\n \"properties\": {\n \"number\": {\n \"description\": \"Valid port number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"subset\": {\n \"description\": \"The name of a subset within the service. Applicable only to services within the mesh. The subset must be defined in a corresponding DestinationRule.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"The proportion of traffic to be forwarded to the service version. If there is only one destination in a rule, all traffic will be routed to it irrespective of the weight.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Strategy type\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Strategy\",\n \"type\": \"object\"\n}", + "version": "servicemesh.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Strategy", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/User.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/User.json new file mode 100644 index 00000000000..83ffb760917 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/User.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "User", + "schema": "{\n \"description\": \"User is the Schema for the users API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"UserSpec defines the desired state of User\",\n \"properties\": {\n \"description\": {\n \"description\": \"Description of the user.\",\n \"type\": \"string\"\n },\n \"displayName\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"description\": \"Unique email address(https://www.ietf.org/rfc/rfc5322.txt).\",\n \"type\": \"string\"\n },\n \"groups\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"lang\": {\n \"description\": \"The preferred written or spoken language for the user.\",\n \"type\": \"string\"\n },\n \"password\": {\n \"description\": \"password will be encrypted by mutating admission webhook Password pattern is tricky here. The rule is simple: length between [6,64], at least one uppercase letter, one lowercase letter, one digit. The regexp in console(javascript) is quite straightforward: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)[^]{6,64}$ But in Go, we don't have ?= (back tracking) capability in regexp (also in CRD validation pattern) So we adopted an alternative scheme to achieve. Use 6 different regexp to combine to achieve the same effect. These six schemes enumerate the arrangement of numbers, uppercase letters, and lowercase letters that appear for the first time. - ^(.*[a-z].*[A-Z].*[0-9].*)$ stands for lowercase letter comes first, then followed by an uppercase letter, then a digit. - ^(.*[a-z].*[0-9].*[A-Z].*)$ stands for lowercase letter comes first, then followed by a digit, then an uppercase leeter. - ^(.*[A-Z].*[a-z].*[0-9].*)$ ... - ^(.*[A-Z].*[0-9].*[a-z].*)$ ... - ^(.*[0-9].*[a-z].*[A-Z].*)$ ... - ^(.*[0-9].*[A-Z].*[a-z].*)$ ... Last but not least, the bcrypt string is also included to match the encrypted password. ^(\\\\$2[ayb]\\\\$.{56})$\",\n \"maxLength\": 64,\n \"minLength\": 8,\n \"pattern\": \"^(.*[a-z].*[A-Z].*[0-9].*)$|^(.*[a-z].*[0-9].*[A-Z].*)$|^(.*[A-Z].*[a-z].*[0-9].*)$|^(.*[A-Z].*[0-9].*[a-z].*)$|^(.*[0-9].*[a-z].*[A-Z].*)$|^(.*[0-9].*[A-Z].*[a-z].*)$|^(\\\\$2[ayb]\\\\$.{56})$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"email\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"User\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "User", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Workspace.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Workspace.json new file mode 100644 index 00000000000..c0fa7d813bb --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/Workspace.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Workspace", + "schema": "{\n \"description\": \"Workspace is the Schema for the workspaces API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"WorkspaceSpec defines the desired state of Workspace\",\n \"properties\": {\n \"manager\": {\n \"type\": \"string\"\n },\n \"networkIsolation\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Workspace\",\n \"type\": \"object\"\n}", + "version": "tenant.kubesphere.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Workspace", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceRole.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceRole.json new file mode 100644 index 00000000000..05c9bf22811 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceRole.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "WorkspaceRole", + "schema": "{\n \"properties\": {\n \"rules\": {\n \"description\": \"Rules holds all the PolicyRules for this WorkspaceRole\",\n \"items\": {\n \"description\": \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n \"properties\": {\n \"apiGroups\": {\n \"description\": \"APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"nonResourceURLs\": {\n \"description\": \"NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"), but not both.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"resourceNames\": {\n \"description\": \"ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"resources\": {\n \"description\": \"Resources is a list of resources this rule applies to. '*' represents all resources.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"verbs\": {\n \"description\": \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"verbs\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"title\": \"Workspace Role\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Workspace Role", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceRoleBinding.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceRoleBinding.json new file mode 100644 index 00000000000..f255399cd9a --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceRoleBinding.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "WorkspaceRoleBinding", + "schema": "{\n \"description\": \"WorkspaceRoleBinding is the Schema for the workspacerolebindings API\",\n \"properties\": {\n \"roleRef\": {\n \"description\": \"RoleRef can only reference a WorkspaceRole. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiGroup\",\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"subjects\": {\n \"description\": \"Subjects holds references to the objects the role applies to.\",\n \"items\": {\n \"description\": \"Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the object being referenced.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referenced object. If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"roleRef\"\n ],\n \"title\": \"Workspace Role Binding\",\n \"type\": \"object\"\n}", + "version": "iam.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Workspace Role Binding", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceTemplate.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceTemplate.json new file mode 100644 index 00000000000..c963d8f385d --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/components/WorkspaceTemplate.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "WorkspaceTemplate", + "schema": "{\n \"description\": \"WorkspaceTemplate is the Schema for the workspacetemplates API\",\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"overrides\": {\n \"items\": {\n \"properties\": {\n \"clusterName\": {\n \"type\": \"string\"\n },\n \"clusterOverrides\": {\n \"items\": {\n \"properties\": {\n \"op\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"clusterName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"placement\": {\n \"properties\": {\n \"clusterSelector\": {\n \"description\": \"A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"clusters\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"WorkspaceSpec defines the desired state of Workspace\",\n \"properties\": {\n \"manager\": {\n \"type\": \"string\"\n },\n \"networkIsolation\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"placement\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Workspace Template\",\n \"type\": \"object\"\n}", + "version": "tenant.kubesphere.io/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Workspace Template", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds" + }, + "model": { + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/kubesphere/kubesphere/master/config/ks-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"38\" viewBox=\"0 0 32 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\"\n fill=\"#fff\" /\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubesphere/v3.4.1/v1.0.0/model.json b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/model.json new file mode 100644 index 00000000000..94562bfdf87 --- /dev/null +++ b/server/meshmodel/kubesphere/v3.4.1/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Platform" + }, + "displayName": "Kubesphere", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#26A678\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 38\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.901 30.192L19.814 25.479V34.905L27.901 30.192ZM27.901 7.241L19.814 2.528V11.954L27.901 7.241ZM15.823 0.25L0 9.472V27.962L15.823 37.183V23.154L8.21 18.716L15.823 14.279V0.25ZM15.878 18.717L31.678 27.924V9.509L15.878 18.717Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v3.4.1" + }, + "name": "kubesphere", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Certified Kubernetes - Distribution", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Application.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Application.json new file mode 100644 index 00000000000..a52c6d94fc0 --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Application.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Application", + "schema": "{\n \"description\": \"Application is the Schema for the applications API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ApplicationSpec is the spec of Application\",\n \"properties\": {\n \"components\": {\n \"items\": {\n \"description\": \"ApplicationComponent describe the component of application\",\n \"properties\": {\n \"dependsOn\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"externalRevision\": {\n \"description\": \"ExternalRevision specified the component revisionName\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"StepInputs defines variable input of WorkflowStep\",\n \"items\": {\n \"description\": \"InputItem defines an input variable of WorkflowStep\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"StepOutputs defines output variable of WorkflowStep\",\n \"items\": {\n \"description\": \"OutputItem defines an output variable of WorkflowStep\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"scopes in ApplicationComponent defines the component-level scopes the format is \\u003cscope-type:scope-instance-name\\u003e pairs, the key represents type of `ScopeDefinition` while the value represent the name of scope instance.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"traits\": {\n \"description\": \"Traits define the trait of one component, the type must be array to keep the order.\",\n \"items\": {\n \"description\": \"ApplicationTrait defines the trait of application\",\n \"properties\": {\n \"properties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"policies\": {\n \"description\": \"Policies defines the global policies for all components in the app, e.g. security, metrics, gitops, multi-cluster placement rules, etc. Policies are applied after components are rendered and before workflow steps are executed.\",\n \"items\": {\n \"description\": \"AppPolicy defines a global policy for all components in the app.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the unique name of the policy.\",\n \"type\": \"string\"\n },\n \"properties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the policy\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workflow\": {\n \"description\": \"Workflow defines how to customize the control logic. If workflow is specified, Vela won't apply any resource, but provide rendered output in AppRevision. Workflow steps are executed in array order, and each step: - will have a context in annotation. - should mark \\\"finish\\\" phase in status.conditions.\",\n \"properties\": {\n \"mode\": {\n \"description\": \"WorkflowExecuteMode defines the mode of workflow execution\",\n \"properties\": {\n \"steps\": {\n \"description\": \"Steps is the mode of workflow steps execution\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"description\": \"SubSteps is the mode of workflow sub steps execution\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ref\": {\n \"type\": \"string\"\n },\n \"steps\": {\n \"items\": {\n \"description\": \"WorkflowStep defines how to execute a workflow step.\",\n \"properties\": {\n \"dependsOn\": {\n \"description\": \"DependsOn is the dependency of the step\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"if\": {\n \"description\": \"If is the if condition of the step\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"Inputs is the inputs of the step\",\n \"items\": {\n \"description\": \"InputItem defines an input variable of WorkflowStep\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"meta\": {\n \"description\": \"Meta is the meta data of the workflow step.\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Mode is only valid for sub steps, it defines the mode of the sub steps\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the unique name of the workflow step.\",\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"Outputs is the outputs of the step\",\n \"items\": {\n \"description\": \"OutputItem defines an output variable of WorkflowStep\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"description\": \"Properties is the properties of the step\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"items\": {\n \"description\": \"WorkflowStepBase defines the workflow step base\",\n \"properties\": {\n \"dependsOn\": {\n \"description\": \"DependsOn is the dependency of the step\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"if\": {\n \"description\": \"If is the if condition of the step\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"Inputs is the inputs of the step\",\n \"items\": {\n \"description\": \"InputItem defines an input variable of WorkflowStep\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"meta\": {\n \"description\": \"Meta is the meta data of the workflow step.\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the unique name of the workflow step.\",\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"Outputs is the outputs of the step\",\n \"items\": {\n \"description\": \"OutputItem defines an output variable of WorkflowStep\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"description\": \"Properties is the properties of the step\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"timeout\": {\n \"description\": \"Timeout is the timeout of the step\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the workflow step.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"timeout\": {\n \"description\": \"Timeout is the timeout of the step\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the workflow step.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"components\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Application\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Application", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ApplicationRevision.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ApplicationRevision.json new file mode 100644 index 00000000000..8827c46b602 --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ApplicationRevision.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ApplicationRevision", + "schema": "{\n \"description\": \"ApplicationRevision is the Schema for the ApplicationRevision API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ApplicationRevisionSpec is the spec of ApplicationRevision\",\n \"properties\": {\n \"application\": {\n \"description\": \"Application records the snapshot of the created/modified Application\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"ApplicationSpec is the spec of Application\",\n \"properties\": {\n \"components\": {\n \"items\": {\n \"description\": \"ApplicationComponent describe the component of application\",\n \"properties\": {\n \"dependsOn\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"externalRevision\": {\n \"description\": \"ExternalRevision specified the component revisionName\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"StepInputs defines variable input of WorkflowStep\",\n \"items\": {\n \"description\": \"InputItem defines an input variable of WorkflowStep\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"StepOutputs defines output variable of WorkflowStep\",\n \"items\": {\n \"description\": \"OutputItem defines an output variable of WorkflowStep\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"scopes in ApplicationComponent defines the component-level scopes the format is \\u003cscope-type:scope-instance-name\\u003e pairs, the key represents type of `ScopeDefinition` while the value represent the name of scope instance.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"traits\": {\n \"description\": \"Traits define the trait of one component, the type must be array to keep the order.\",\n \"items\": {\n \"description\": \"ApplicationTrait defines the trait of application\",\n \"properties\": {\n \"properties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"policies\": {\n \"description\": \"Policies defines the global policies for all components in the app, e.g. security, metrics, gitops, multi-cluster placement rules, etc. Policies are applied after components are rendered and before workflow steps are executed.\",\n \"items\": {\n \"description\": \"AppPolicy defines a global policy for all components in the app.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name is the unique name of the policy.\",\n \"type\": \"string\"\n },\n \"properties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the policy\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workflow\": {\n \"description\": \"Workflow defines how to customize the control logic. If workflow is specified, Vela won't apply any resource, but provide rendered output in AppRevision. Workflow steps are executed in array order, and each step: - will have a context in annotation. - should mark \\\"finish\\\" phase in status.conditions.\",\n \"properties\": {\n \"mode\": {\n \"description\": \"WorkflowExecuteMode defines the mode of workflow execution\",\n \"properties\": {\n \"steps\": {\n \"description\": \"Steps is the mode of workflow steps execution\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"description\": \"SubSteps is the mode of workflow sub steps execution\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"ref\": {\n \"type\": \"string\"\n },\n \"steps\": {\n \"items\": {\n \"description\": \"WorkflowStep defines how to execute a workflow step.\",\n \"properties\": {\n \"dependsOn\": {\n \"description\": \"DependsOn is the dependency of the step\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"if\": {\n \"description\": \"If is the if condition of the step\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"Inputs is the inputs of the step\",\n \"items\": {\n \"description\": \"InputItem defines an input variable of WorkflowStep\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"meta\": {\n \"description\": \"Meta is the meta data of the workflow step.\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Mode is only valid for sub steps, it defines the mode of the sub steps\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the unique name of the workflow step.\",\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"Outputs is the outputs of the step\",\n \"items\": {\n \"description\": \"OutputItem defines an output variable of WorkflowStep\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"description\": \"Properties is the properties of the step\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"items\": {\n \"description\": \"WorkflowStepBase defines the workflow step base\",\n \"properties\": {\n \"dependsOn\": {\n \"description\": \"DependsOn is the dependency of the step\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"if\": {\n \"description\": \"If is the if condition of the step\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"Inputs is the inputs of the step\",\n \"items\": {\n \"description\": \"InputItem defines an input variable of WorkflowStep\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"meta\": {\n \"description\": \"Meta is the meta data of the workflow step.\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the unique name of the workflow step.\",\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"Outputs is the outputs of the step\",\n \"items\": {\n \"description\": \"OutputItem defines an output variable of WorkflowStep\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"description\": \"Properties is the properties of the step\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"timeout\": {\n \"description\": \"Timeout is the timeout of the step\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the workflow step.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"timeout\": {\n \"description\": \"Timeout is the timeout of the step\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the workflow step.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"components\"\n ],\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"AppStatus defines the observed state of Application\",\n \"properties\": {\n \"appliedResources\": {\n \"description\": \"AppliedResources record the resources that the workflow step apply.\",\n \"items\": {\n \"description\": \"ClusterObjectReference defines the object reference with cluster.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"cluster\": {\n \"type\": \"string\"\n },\n \"creator\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"components\": {\n \"description\": \"Components record the related Components created by Application Controller\",\n \"items\": {\n \"description\": \"ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, \\\"must refer only to types A and B\\\" or \\\"UID not honored\\\" or \\\"name must be restricted\\\". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. \\n Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the application configuration it generates\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n },\n \"observedGeneration\": {\n \"description\": \"The generation observed by the application controller.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"policy\": {\n \"description\": \"PolicyStatus records the status of policy Deprecated This field is only used by EnvBinding Policy which is deprecated.\",\n \"items\": {\n \"description\": \"PolicyStatus records the status of policy Deprecated\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"services\": {\n \"description\": \"Services record the status of the application services\",\n \"items\": {\n \"description\": \"ApplicationComponentStatus record the health status of App component\",\n \"properties\": {\n \"cluster\": {\n \"type\": \"string\"\n },\n \"env\": {\n \"type\": \"string\"\n },\n \"healthy\": {\n \"type\": \"boolean\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"scopes\": {\n \"items\": {\n \"description\": \"ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, \\\"must refer only to types A and B\\\" or \\\"UID not honored\\\" or \\\"name must be restricted\\\". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. \\n Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"traits\": {\n \"items\": {\n \"description\": \"ApplicationTraitStatus records the trait health status\",\n \"properties\": {\n \"healthy\": {\n \"type\": \"boolean\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"healthy\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workloadDefinition\": {\n \"description\": \"WorkloadDefinition is the definition of a WorkloadDefinition, such as deployments/apps.v1\",\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"healthy\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"status\": {\n \"description\": \"ApplicationPhase is a label for the condition of an application at the current time\",\n \"type\": \"string\"\n },\n \"workflow\": {\n \"description\": \"Workflow record the status of workflow\",\n \"properties\": {\n \"appRevision\": {\n \"type\": \"string\"\n },\n \"contextBackend\": {\n \"description\": \"ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, \\\"must refer only to types A and B\\\" or \\\"UID not honored\\\" or \\\"name must be restricted\\\". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. \\n Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"endTime\": {\n \"format\": \"date-time\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"finished\": {\n \"type\": \"boolean\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"string\"\n },\n \"startTime\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"WorkflowRunPhase is a label for the condition of a WorkflowRun at the current time\",\n \"type\": \"string\"\n },\n \"steps\": {\n \"items\": {\n \"description\": \"WorkflowStepStatus record the status of a workflow step, include step status and subStep status\",\n \"properties\": {\n \"firstExecuteTime\": {\n \"description\": \"FirstExecuteTime is the first time this step execution.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"lastExecuteTime\": {\n \"description\": \"LastExecuteTime is the last time this step execution.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A human readable message indicating details about why the workflowStep is in this state.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"description\": \"WorkflowStepPhase describes the phase of a workflow step.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A brief CamelCase message indicating details about why the workflowStep is in this state.\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"items\": {\n \"description\": \"StepStatus record the base status of workflow step, which could be workflow step or subStep\",\n \"properties\": {\n \"firstExecuteTime\": {\n \"description\": \"FirstExecuteTime is the first time this step execution.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"lastExecuteTime\": {\n \"description\": \"LastExecuteTime is the last time this step execution.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A human readable message indicating details about why the workflowStep is in this state.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"phase\": {\n \"description\": \"WorkflowStepPhase describes the phase of a workflow step.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A brief CamelCase message indicating details about why the workflowStep is in this state.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"suspend\": {\n \"type\": \"boolean\"\n },\n \"suspendState\": {\n \"type\": \"string\"\n },\n \"terminated\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"finished\",\n \"mode\",\n \"suspend\",\n \"terminated\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"componentDefinitions\": {\n \"additionalProperties\": {\n \"description\": \"ComponentDefinition is the Schema for the componentdefinitions API\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"ComponentDefinitionSpec defines the desired state of ComponentDefinition\",\n \"properties\": {\n \"childResourceKinds\": {\n \"description\": \"ChildResourceKinds are the list of GVK of the child resources this workload generates\",\n \"items\": {\n \"description\": \"A ChildResourceKind defines a child Kubernetes resource kind with a selector\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the child resource\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the child resource\",\n \"type\": \"string\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Selector to select the child resources that the workload wants to expose to traits\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"extension\": {\n \"description\": \"Extension is used for extension needs by OAM platform builders\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"podSpecPath\": {\n \"description\": \"PodSpecPath indicates where/if this workload has K8s podSpec field if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.\",\n \"type\": \"string\"\n },\n \"revisionLabel\": {\n \"description\": \"RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload can be used by trait to create resource selectors(e.g. label selector for pods).\",\n \"type\": \"string\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the workload\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"Status defines the custom health policy and status message for workload\",\n \"properties\": {\n \"customStatus\": {\n \"description\": \"CustomStatus defines the custom status message that could display to user\",\n \"type\": \"string\"\n },\n \"healthPolicy\": {\n \"description\": \"HealthPolicy defines the health check policy for the abstraction\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workload\": {\n \"description\": \"Workload is a workload type descriptor\",\n \"properties\": {\n \"definition\": {\n \"description\": \"Definition mutually exclusive to workload.type, a embedded WorkloadDefinition\",\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type ref to a WorkloadDefinition via name\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"workload\"\n ],\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"ComponentDefinitionStatus is the status of ComponentDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"configMapRef\": {\n \"description\": \"ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.\",\n \"type\": \"string\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the component definition\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"ComponentDefinitions records the snapshot of the componentDefinitions related with the created/modified Application\",\n \"type\": \"object\"\n },\n \"compression\": {\n \"description\": \"Compression represents the compressed components in apprev in base64 (if compression is enabled).\",\n \"properties\": {\n \"data\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type the compression type\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"policies\": {\n \"additionalProperties\": {\n \"description\": \"Policy is the Schema for the policy API\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"properties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"description\": \"Policies records the external policies\",\n \"type\": \"object\"\n },\n \"policyDefinitions\": {\n \"additionalProperties\": {\n \"description\": \"PolicyDefinition is the Schema for the policydefinitions API\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"PolicyDefinitionSpec defines the desired state of PolicyDefinition\",\n \"properties\": {\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"manageHealthCheck\": {\n \"description\": \"ManageHealthCheck means the policy will handle health checking and skip application controller built-in health checking.\",\n \"type\": \"boolean\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the policy definition. Only CUE schematic is supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"PolicyDefinitionStatus is the status of PolicyDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"configMapRef\": {\n \"description\": \"ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.\",\n \"type\": \"string\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the component definition\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"PolicyDefinitions records the snapshot of the PolicyDefinitions related with the created/modified Application\",\n \"type\": \"object\"\n },\n \"referredObjects\": {\n \"description\": \"ReferredObjects records the referred objects used in the ref-object typed components\",\n \"format\": \"textarea\",\n \"items\": {\n \"description\": \"ReferredObject the referred Kubernetes object\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"type\": \"string\"\n },\n \"traitDefinitions\": {\n \"additionalProperties\": {\n \"description\": \"A TraitDefinition registers a kind of Kubernetes custom resource as a valid OAM trait kind by referencing its CustomResourceDefinition. The CRD is used to validate the schema of the trait when it is embedded in an OAM ApplicationConfiguration.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"A TraitDefinitionSpec defines the desired state of a TraitDefinition.\",\n \"properties\": {\n \"appliesToWorkloads\": {\n \"description\": \"AppliesToWorkloads specifies the list of workload kinds this trait applies to. Workload kinds are specified in resource.group/version format, e.g. server.core.oam.dev/v1alpha2. Traits that omit this field apply to all workload kinds.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"conflictsWith\": {\n \"description\": \"ConflictsWith specifies the list of traits(CRD name, Definition name, CRD group) which could not apply to the same workloads with this trait. Traits that omit this field can work with any other traits. Example rules: \\\"service\\\" # Trait definition name \\\"services.k8s.io\\\" # API resource/crd name \\\"*.networking.k8s.io\\\" # API group \\\"labelSelector:foo=bar\\\" # label selector labelSelector format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"controlPlaneOnly\": {\n \"description\": \"ControlPlaneOnly defines which cluster is dispatched to\",\n \"type\": \"boolean\"\n },\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"extension\": {\n \"description\": \"Extension is used for extension needs by OAM platform builders\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"manageWorkload\": {\n \"description\": \"ManageWorkload defines the trait would be responsible for creating the workload\",\n \"type\": \"boolean\"\n },\n \"podDisruptive\": {\n \"description\": \"PodDisruptive specifies whether using the trait will cause the pod to restart or not.\",\n \"type\": \"boolean\"\n },\n \"revisionEnabled\": {\n \"description\": \"Revision indicates whether a trait is aware of component revision\",\n \"type\": \"boolean\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the trait. Only CUE and Kube schematic are supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"stage\": {\n \"description\": \"Stage defines the stage information to which this trait resource processing belongs. Currently, PreDispatch and PostDispatch are provided, which are used to control resource pre-process and post-process respectively.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status defines the custom health policy and status message for trait\",\n \"properties\": {\n \"customStatus\": {\n \"description\": \"CustomStatus defines the custom status message that could display to user\",\n \"type\": \"string\"\n },\n \"healthPolicy\": {\n \"description\": \"HealthPolicy defines the health check policy for the abstraction\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workloadRefPath\": {\n \"description\": \"WorkloadRefPath indicates where/if a trait accepts a workloadRef object\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"TraitDefinitionStatus is the status of TraitDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"configMapRef\": {\n \"description\": \"ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.\",\n \"type\": \"string\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the component definition\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"TraitDefinitions records the snapshot of the traitDefinitions related with the created/modified Application\",\n \"type\": \"object\"\n },\n \"workflow\": {\n \"description\": \"Workflow records the external workflow\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"WorkflowExecuteMode defines the mode of workflow execution\",\n \"properties\": {\n \"steps\": {\n \"description\": \"Steps is the mode of workflow steps execution\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"description\": \"SubSteps is the mode of workflow sub steps execution\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"steps\": {\n \"items\": {\n \"description\": \"WorkflowStep defines how to execute a workflow step.\",\n \"properties\": {\n \"dependsOn\": {\n \"description\": \"DependsOn is the dependency of the step\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"if\": {\n \"description\": \"If is the if condition of the step\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"Inputs is the inputs of the step\",\n \"items\": {\n \"description\": \"InputItem defines an input variable of WorkflowStep\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"meta\": {\n \"description\": \"Meta is the meta data of the workflow step.\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Mode is only valid for sub steps, it defines the mode of the sub steps\",\n \"nullable\": true,\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the unique name of the workflow step.\",\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"Outputs is the outputs of the step\",\n \"items\": {\n \"description\": \"OutputItem defines an output variable of WorkflowStep\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"description\": \"Properties is the properties of the step\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"items\": {\n \"description\": \"WorkflowStepBase defines the workflow step base\",\n \"properties\": {\n \"dependsOn\": {\n \"description\": \"DependsOn is the dependency of the step\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"if\": {\n \"description\": \"If is the if condition of the step\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"Inputs is the inputs of the step\",\n \"items\": {\n \"description\": \"InputItem defines an input variable of WorkflowStep\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"meta\": {\n \"description\": \"Meta is the meta data of the workflow step.\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the unique name of the workflow step.\",\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"Outputs is the outputs of the step\",\n \"items\": {\n \"description\": \"OutputItem defines an output variable of WorkflowStep\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"description\": \"Properties is the properties of the step\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"timeout\": {\n \"description\": \"Timeout is the timeout of the step\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the workflow step.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"timeout\": {\n \"description\": \"Timeout is the timeout of the step\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the workflow step.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"workflowStepDefinitions\": {\n \"additionalProperties\": {\n \"description\": \"WorkflowStepDefinition is the Schema for the workflowstepdefinitions API\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"WorkflowStepDefinitionSpec defines the desired state of WorkflowStepDefinition\",\n \"properties\": {\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the workflow step definition. Only CUE schematic is supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"WorkflowStepDefinitionStatus is the status of WorkflowStepDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"configMapRef\": {\n \"description\": \"ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.\",\n \"type\": \"string\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the component definition\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"WorkflowStepDefinitions records the snapshot of the WorkflowStepDefinitions related with the created/modified Application\",\n \"type\": \"object\"\n },\n \"workloadDefinitions\": {\n \"additionalProperties\": {\n \"description\": \"A WorkloadDefinition registers a kind of Kubernetes custom resource as a valid OAM workload kind by referencing its CustomResourceDefinition. The CRD is used to validate the schema of the workload when it is embedded in an OAM Component.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"A WorkloadDefinitionSpec defines the desired state of a WorkloadDefinition.\",\n \"properties\": {\n \"childResourceKinds\": {\n \"description\": \"ChildResourceKinds are the list of GVK of the child resources this workload generates\",\n \"items\": {\n \"description\": \"A ChildResourceKind defines a child Kubernetes resource kind with a selector\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the child resource\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the child resource\",\n \"type\": \"string\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Selector to select the child resources that the workload wants to expose to traits\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this workload kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"extension\": {\n \"description\": \"Extension is used for extension needs by OAM platform builders\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"podSpecPath\": {\n \"description\": \"PodSpecPath indicates where/if this workload has K8s podSpec field if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.\",\n \"type\": \"string\"\n },\n \"revisionLabel\": {\n \"description\": \"RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload can be used by trait to create resource selectors(e.g. label selector for pods).\",\n \"type\": \"string\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the workload\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"Status defines the custom health policy and status message for workload\",\n \"properties\": {\n \"customStatus\": {\n \"description\": \"CustomStatus defines the custom status message that could display to user\",\n \"type\": \"string\"\n },\n \"healthPolicy\": {\n \"description\": \"HealthPolicy defines the health check policy for the abstraction\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"definitionRef\"\n ],\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"WorkloadDefinitionStatus is the status of WorkloadDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"WorkloadDefinitions records the snapshot of the workloadDefinitions related with the created/modified Application\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"application\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Application Revision\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Application Revision", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ComponentDefinition.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ComponentDefinition.json new file mode 100644 index 00000000000..985126e20b4 --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ComponentDefinition.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ComponentDefinition", + "schema": "{\n \"description\": \"ComponentDefinition is the Schema for the componentdefinitions API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ComponentDefinitionSpec defines the desired state of ComponentDefinition\",\n \"properties\": {\n \"childResourceKinds\": {\n \"description\": \"ChildResourceKinds are the list of GVK of the child resources this workload generates\",\n \"items\": {\n \"description\": \"A ChildResourceKind defines a child Kubernetes resource kind with a selector\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the child resource\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the child resource\",\n \"type\": \"string\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Selector to select the child resources that the workload wants to expose to traits\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"extension\": {\n \"description\": \"Extension is used for extension needs by OAM platform builders\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"podSpecPath\": {\n \"description\": \"PodSpecPath indicates where/if this workload has K8s podSpec field if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.\",\n \"type\": \"string\"\n },\n \"revisionLabel\": {\n \"description\": \"RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload can be used by trait to create resource selectors(e.g. label selector for pods).\",\n \"type\": \"string\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the workload\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"Status defines the custom health policy and status message for workload\",\n \"properties\": {\n \"customStatus\": {\n \"description\": \"CustomStatus defines the custom status message that could display to user\",\n \"type\": \"string\"\n },\n \"healthPolicy\": {\n \"description\": \"HealthPolicy defines the health check policy for the abstraction\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workload\": {\n \"description\": \"Workload is a workload type descriptor\",\n \"properties\": {\n \"definition\": {\n \"description\": \"Definition mutually exclusive to workload.type, a embedded WorkloadDefinition\",\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type ref to a WorkloadDefinition via name\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"workload\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Component Definition\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Component Definition", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/DefinitionRevision.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/DefinitionRevision.json new file mode 100644 index 00000000000..09de35cefb0 --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/DefinitionRevision.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DefinitionRevision", + "schema": "{\n \"description\": \"DefinitionRevision is the Schema for the DefinitionRevision API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DefinitionRevisionSpec is the spec of DefinitionRevision\",\n \"properties\": {\n \"componentDefinition\": {\n \"description\": \"ComponentDefinition records the snapshot of the created/modified ComponentDefinition\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"ComponentDefinitionSpec defines the desired state of ComponentDefinition\",\n \"properties\": {\n \"childResourceKinds\": {\n \"description\": \"ChildResourceKinds are the list of GVK of the child resources this workload generates\",\n \"items\": {\n \"description\": \"A ChildResourceKind defines a child Kubernetes resource kind with a selector\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the child resource\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the child resource\",\n \"type\": \"string\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Selector to select the child resources that the workload wants to expose to traits\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"extension\": {\n \"description\": \"Extension is used for extension needs by OAM platform builders\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"podSpecPath\": {\n \"description\": \"PodSpecPath indicates where/if this workload has K8s podSpec field if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.\",\n \"type\": \"string\"\n },\n \"revisionLabel\": {\n \"description\": \"RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload can be used by trait to create resource selectors(e.g. label selector for pods).\",\n \"type\": \"string\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the workload\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"Status defines the custom health policy and status message for workload\",\n \"properties\": {\n \"customStatus\": {\n \"description\": \"CustomStatus defines the custom status message that could display to user\",\n \"type\": \"string\"\n },\n \"healthPolicy\": {\n \"description\": \"HealthPolicy defines the health check policy for the abstraction\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workload\": {\n \"description\": \"Workload is a workload type descriptor\",\n \"properties\": {\n \"definition\": {\n \"description\": \"Definition mutually exclusive to workload.type, a embedded WorkloadDefinition\",\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type ref to a WorkloadDefinition via name\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"workload\"\n ],\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"ComponentDefinitionStatus is the status of ComponentDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"configMapRef\": {\n \"description\": \"ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.\",\n \"type\": \"string\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the component definition\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"definitionType\": {\n \"description\": \"DefinitionType\",\n \"enum\": [\n \"Component\",\n \"Trait\",\n \"Policy\",\n \"WorkflowStep\"\n ],\n \"type\": \"string\"\n },\n \"policyDefinition\": {\n \"description\": \"PolicyDefinition records the snapshot of the created/modified PolicyDefinition\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"PolicyDefinitionSpec defines the desired state of PolicyDefinition\",\n \"properties\": {\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"manageHealthCheck\": {\n \"description\": \"ManageHealthCheck means the policy will handle health checking and skip application controller built-in health checking.\",\n \"type\": \"boolean\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the policy definition. Only CUE schematic is supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"PolicyDefinitionStatus is the status of PolicyDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"configMapRef\": {\n \"description\": \"ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.\",\n \"type\": \"string\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the component definition\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"revision\": {\n \"description\": \"Revision record revision number of DefinitionRevision\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of DefinitionRevision object.\",\n \"type\": \"string\"\n },\n \"traitDefinition\": {\n \"description\": \"TraitDefinition records the snapshot of the created/modified TraitDefinition\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"A TraitDefinitionSpec defines the desired state of a TraitDefinition.\",\n \"properties\": {\n \"appliesToWorkloads\": {\n \"description\": \"AppliesToWorkloads specifies the list of workload kinds this trait applies to. Workload kinds are specified in resource.group/version format, e.g. server.core.oam.dev/v1alpha2. Traits that omit this field apply to all workload kinds.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"conflictsWith\": {\n \"description\": \"ConflictsWith specifies the list of traits(CRD name, Definition name, CRD group) which could not apply to the same workloads with this trait. Traits that omit this field can work with any other traits. Example rules: \\\"service\\\" # Trait definition name \\\"services.k8s.io\\\" # API resource/crd name \\\"*.networking.k8s.io\\\" # API group \\\"labelSelector:foo=bar\\\" # label selector labelSelector format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"controlPlaneOnly\": {\n \"description\": \"ControlPlaneOnly defines which cluster is dispatched to\",\n \"type\": \"boolean\"\n },\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"extension\": {\n \"description\": \"Extension is used for extension needs by OAM platform builders\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"manageWorkload\": {\n \"description\": \"ManageWorkload defines the trait would be responsible for creating the workload\",\n \"type\": \"boolean\"\n },\n \"podDisruptive\": {\n \"description\": \"PodDisruptive specifies whether using the trait will cause the pod to restart or not.\",\n \"type\": \"boolean\"\n },\n \"revisionEnabled\": {\n \"description\": \"Revision indicates whether a trait is aware of component revision\",\n \"type\": \"boolean\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the trait. Only CUE and Kube schematic are supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"stage\": {\n \"description\": \"Stage defines the stage information to which this trait resource processing belongs. Currently, PreDispatch and PostDispatch are provided, which are used to control resource pre-process and post-process respectively.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status defines the custom health policy and status message for trait\",\n \"properties\": {\n \"customStatus\": {\n \"description\": \"CustomStatus defines the custom status message that could display to user\",\n \"type\": \"string\"\n },\n \"healthPolicy\": {\n \"description\": \"HealthPolicy defines the health check policy for the abstraction\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workloadRefPath\": {\n \"description\": \"WorkloadRefPath indicates where/if a trait accepts a workloadRef object\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"TraitDefinitionStatus is the status of TraitDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"configMapRef\": {\n \"description\": \"ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.\",\n \"type\": \"string\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the component definition\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"workflowStepDefinition\": {\n \"description\": \"WorkflowStepDefinition records the snapshot of the created/modified WorkflowStepDefinition\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"WorkflowStepDefinitionSpec defines the desired state of WorkflowStepDefinition\",\n \"properties\": {\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the workflow step definition. Only CUE schematic is supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"WorkflowStepDefinitionStatus is the status of WorkflowStepDefinition\",\n \"properties\": {\n \"conditions\": {\n \"description\": \"Conditions of the resource.\",\n \"items\": {\n \"description\": \"A Condition that may apply to a resource.\",\n \"properties\": {\n \"lastTransitionTime\": {\n \"description\": \"LastTransitionTime is the last time this condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"A Message containing details about this condition's last transition from one status to another, if any.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"A Reason for this condition's last transition from one status to another.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status of this condition; is it currently True, False, or Unknown?\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of this condition. At most one of each condition type may apply to a resource at any point in time.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastTransitionTime\",\n \"reason\",\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"configMapRef\": {\n \"description\": \"ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.\",\n \"type\": \"string\"\n },\n \"latestRevision\": {\n \"description\": \"LatestRevision of the component definition\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"revisionHash\": {\n \"description\": \"RevisionHash record the hash value of the spec of ApplicationRevision object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"revision\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"definitionType\",\n \"revision\",\n \"revisionHash\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Definition Revision\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Definition Revision", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Policy.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Policy.json new file mode 100644 index 00000000000..3b73d3eef6c --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Policy.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Policy", + "schema": "{\n \"description\": \"Policy is the Schema for the policy API\",\n \"properties\": {\n \"properties\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"title\": \"Policy\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Policy", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/PolicyDefinition.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/PolicyDefinition.json new file mode 100644 index 00000000000..ddd85fb4c47 --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/PolicyDefinition.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PolicyDefinition", + "schema": "{\n \"description\": \"PolicyDefinition is the Schema for the policydefinitions API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"PolicyDefinitionSpec defines the desired state of PolicyDefinition\",\n \"properties\": {\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"manageHealthCheck\": {\n \"description\": \"ManageHealthCheck means the policy will handle health checking and skip application controller built-in health checking.\",\n \"type\": \"boolean\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the policy definition. Only CUE schematic is supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Policy Definition\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Policy Definition", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ResourceTracker.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ResourceTracker.json new file mode 100644 index 00000000000..cb8f36eb024 --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/ResourceTracker.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ResourceTracker", + "schema": "{\n \"description\": \"An ResourceTracker represents a tracker for track cross namespace resources\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ResourceTrackerSpec define the spec of resourceTracker\",\n \"properties\": {\n \"applicationGeneration\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"compression\": {\n \"description\": \"ResourceTrackerCompression represents the compressed components in ResourceTracker.\",\n \"properties\": {\n \"data\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type the compression type\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"managedResources\": {\n \"items\": {\n \"description\": \"ManagedResource define the resource to be managed by ResourceTracker\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"cluster\": {\n \"type\": \"string\"\n },\n \"component\": {\n \"type\": \"string\"\n },\n \"creator\": {\n \"type\": \"string\"\n },\n \"deleted\": {\n \"description\": \"Deleted marks the resource to be deleted\",\n \"type\": \"boolean\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"raw\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"skipGC\": {\n \"description\": \"SkipGC marks the resource to skip gc\",\n \"type\": \"boolean\"\n },\n \"trait\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"description\": \"ResourceTrackerType defines the type of resourceTracker\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"applicationGeneration\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Resource Tracker\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Resource Tracker", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/TraitDefinition.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/TraitDefinition.json new file mode 100644 index 00000000000..2ecc521e5e8 --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/TraitDefinition.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "TraitDefinition", + "schema": "{\n \"description\": \"A TraitDefinition registers a kind of Kubernetes custom resource as a valid OAM trait kind by referencing its CustomResourceDefinition. The CRD is used to validate the schema of the trait when it is embedded in an OAM ApplicationConfiguration.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"A TraitDefinitionSpec defines the desired state of a TraitDefinition.\",\n \"properties\": {\n \"appliesToWorkloads\": {\n \"description\": \"AppliesToWorkloads specifies the list of workload kinds this trait applies to. Workload kinds are specified in resource.group/version format, e.g. server.core.oam.dev/v1alpha2. Traits that omit this field apply to all workload kinds.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"conflictsWith\": {\n \"description\": \"ConflictsWith specifies the list of traits(CRD name, Definition name, CRD group) which could not apply to the same workloads with this trait. Traits that omit this field can work with any other traits. Example rules: \\\"service\\\" # Trait definition name \\\"services.k8s.io\\\" # API resource/crd name \\\"*.networking.k8s.io\\\" # API group \\\"labelSelector:foo=bar\\\" # label selector labelSelector format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"controlPlaneOnly\": {\n \"description\": \"ControlPlaneOnly defines which cluster is dispatched to\",\n \"type\": \"boolean\"\n },\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"extension\": {\n \"description\": \"Extension is used for extension needs by OAM platform builders\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"manageWorkload\": {\n \"description\": \"ManageWorkload defines the trait would be responsible for creating the workload\",\n \"type\": \"boolean\"\n },\n \"podDisruptive\": {\n \"description\": \"PodDisruptive specifies whether using the trait will cause the pod to restart or not.\",\n \"type\": \"boolean\"\n },\n \"revisionEnabled\": {\n \"description\": \"Revision indicates whether a trait is aware of component revision\",\n \"type\": \"boolean\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the trait. Only CUE and Kube schematic are supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"stage\": {\n \"description\": \"Stage defines the stage information to which this trait resource processing belongs. Currently, PreDispatch and PostDispatch are provided, which are used to control resource pre-process and post-process respectively.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"description\": \"Status defines the custom health policy and status message for trait\",\n \"properties\": {\n \"customStatus\": {\n \"description\": \"CustomStatus defines the custom status message that could display to user\",\n \"type\": \"string\"\n },\n \"healthPolicy\": {\n \"description\": \"HealthPolicy defines the health check policy for the abstraction\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"workloadRefPath\": {\n \"description\": \"WorkloadRefPath indicates where/if a trait accepts a workloadRef object\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Trait Definition\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Trait Definition", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Workflow.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Workflow.json new file mode 100644 index 00000000000..98b385b2334 --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/Workflow.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Workflow", + "schema": "{\n \"description\": \"Workflow is the Schema for the workflow API\",\n \"properties\": {\n \"mode\": {\n \"description\": \"WorkflowExecuteMode defines the mode of workflow execution\",\n \"properties\": {\n \"steps\": {\n \"description\": \"Steps is the mode of workflow steps execution\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"description\": \"SubSteps is the mode of workflow sub steps execution\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"steps\": {\n \"items\": {\n \"description\": \"WorkflowStep defines how to execute a workflow step.\",\n \"properties\": {\n \"dependsOn\": {\n \"description\": \"DependsOn is the dependency of the step\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"if\": {\n \"description\": \"If is the if condition of the step\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"Inputs is the inputs of the step\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\",\n \"parameterKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"meta\": {\n \"description\": \"Meta is the meta data of the workflow step.\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the unique name of the workflow step.\",\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"Outputs is the outputs of the step\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"description\": \"Properties is the properties of the step\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"subSteps\": {\n \"items\": {\n \"description\": \"WorkflowStepBase defines the workflow step base\",\n \"properties\": {\n \"dependsOn\": {\n \"description\": \"DependsOn is the dependency of the step\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"if\": {\n \"description\": \"If is the if condition of the step\",\n \"type\": \"string\"\n },\n \"inputs\": {\n \"description\": \"Inputs is the inputs of the step\",\n \"items\": {\n \"properties\": {\n \"from\": {\n \"type\": \"string\"\n },\n \"parameterKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"from\",\n \"parameterKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"meta\": {\n \"description\": \"Meta is the meta data of the workflow step.\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name is the unique name of the workflow step.\",\n \"type\": \"string\"\n },\n \"outputs\": {\n \"description\": \"Outputs is the outputs of the step\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"properties\": {\n \"description\": \"Properties is the properties of the step\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"timeout\": {\n \"description\": \"Timeout is the timeout of the step\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the workflow step.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"timeout\": {\n \"description\": \"Timeout is the timeout of the step\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the workflow step.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"title\": \"Workflow\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Workflow", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/WorkflowStepDefinition.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/WorkflowStepDefinition.json new file mode 100644 index 00000000000..9c6857d815b --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/WorkflowStepDefinition.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "WorkflowStepDefinition", + "schema": "{\n \"description\": \"WorkflowStepDefinition is the Schema for the workflowstepdefinitions API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"WorkflowStepDefinitionSpec defines the desired state of WorkflowStepDefinition\",\n \"properties\": {\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this trait kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the workflow step definition. Only CUE schematic is supported for now.\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Workflow Step Definition\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Workflow Step Definition", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/WorkloadDefinition.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/WorkloadDefinition.json new file mode 100644 index 00000000000..4ba28ad252b --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/components/WorkloadDefinition.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "WorkloadDefinition", + "schema": "{\n \"description\": \"A WorkloadDefinition registers a kind of Kubernetes custom resource as a valid OAM workload kind by referencing its CustomResourceDefinition. The CRD is used to validate the schema of the workload when it is embedded in an OAM Component.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"A WorkloadDefinitionSpec defines the desired state of a WorkloadDefinition.\",\n \"properties\": {\n \"childResourceKinds\": {\n \"description\": \"ChildResourceKinds are the list of GVK of the child resources this workload generates\",\n \"items\": {\n \"description\": \"A ChildResourceKind defines a child Kubernetes resource kind with a selector\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion of the child resource\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the child resource\",\n \"type\": \"string\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Selector to select the child resources that the workload wants to expose to traits\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"definitionRef\": {\n \"description\": \"Reference to the CustomResourceDefinition that defines this workload kind.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced CustomResourceDefinition.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version indicate which version should be used if CRD has multiple versions by default it will use the first one if not specified\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"extension\": {\n \"description\": \"Extension is used for extension needs by OAM platform builders\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"podSpecPath\": {\n \"description\": \"PodSpecPath indicates where/if this workload has K8s podSpec field if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.\",\n \"type\": \"string\"\n },\n \"revisionLabel\": {\n \"description\": \"RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload can be used by trait to create resource selectors(e.g. label selector for pods).\",\n \"type\": \"string\"\n },\n \"schematic\": {\n \"description\": \"Schematic defines the data format and template of the encapsulation of the workload\",\n \"properties\": {\n \"cue\": {\n \"description\": \"CUE defines the encapsulation in CUE format\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field. Template is a required field if CUE is defined in Capability Definition.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"helm\": {\n \"description\": \"A Helm represents resources used by a Helm module\",\n \"properties\": {\n \"release\": {\n \"description\": \"Release records a Helm release used by a Helm module workload.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"HelmRelease records a Helm repository used by a Helm module workload.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"release\",\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"kube\": {\n \"description\": \"Kube defines the encapsulation in raw Kubernetes resource format\",\n \"properties\": {\n \"parameters\": {\n \"description\": \"Parameters defines configurable parameters\",\n \"items\": {\n \"description\": \"A KubeParameter defines a configurable parameter of a component.\",\n \"properties\": {\n \"description\": {\n \"description\": \"Description of this parameter.\",\n \"type\": \"string\"\n },\n \"fieldPaths\": {\n \"description\": \"FieldPaths specifies an array of fields within this workload that will be overwritten by the value of this parameter. \\tAll fields must be of the same type. Fields are specified as JSON field paths without a leading dot, for example 'spec.replicas'.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of this parameter\",\n \"type\": \"string\"\n },\n \"required\": {\n \"default\": false,\n \"description\": \"Required specifies whether or not a value for this parameter must be supplied when authoring an Application.\",\n \"type\": \"boolean\"\n },\n \"type\": {\n \"description\": \"ValueType indicates the type of the parameter value, and only supports basic data types: string, number, boolean.\",\n \"enum\": [\n \"string\",\n \"number\",\n \"boolean\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPaths\",\n \"name\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"template\": {\n \"description\": \"Template defines the raw Kubernetes resource\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n },\n \"terraform\": {\n \"description\": \"Terraform is the struct to describe cloud resources managed by Hashicorp Terraform\",\n \"properties\": {\n \"configuration\": {\n \"description\": \"Configuration is Terraform Configuration\",\n \"type\": \"string\"\n },\n \"customRegion\": {\n \"description\": \"Region is cloud provider's region. It will override the region in the region field of ProviderReference\",\n \"type\": \"string\"\n },\n \"deleteResource\": {\n \"default\": true,\n \"description\": \"DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted\",\n \"type\": \"boolean\"\n },\n \"gitCredentialsSecretReference\": {\n \"description\": \"GitCredentialsSecretReference specifies the reference to the secret containing the git credentials\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"path\": {\n \"description\": \"Path is the sub-directory of remote git repository. It's valid when remote is set\",\n \"type\": \"string\"\n },\n \"providerRef\": {\n \"description\": \"ProviderReference specifies the reference to Provider\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referenced object.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"default\",\n \"description\": \"Namespace of the referenced object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"default\": \"hcl\",\n \"description\": \"Type specifies which Terraform configuration it is, HCL or JSON syntax\",\n \"enum\": [\n \"hcl\",\n \"json\",\n \"remote\"\n ],\n \"type\": \"string\"\n },\n \"writeConnectionSecretToRef\": {\n \"description\": \"WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the secret.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the secret.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"configuration\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"Status defines the custom health policy and status message for workload\",\n \"properties\": {\n \"customStatus\": {\n \"description\": \"CustomStatus defines the custom status message that could display to user\",\n \"type\": \"string\"\n },\n \"healthPolicy\": {\n \"description\": \"HealthPolicy defines the health check policy for the abstraction\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"definitionRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Workload Definition\",\n \"type\": \"object\"\n}", + "version": "core.oam.dev/v1alpha2" + }, + "configuration": null, + "description": "", + "displayName": "Workload Definition", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "source_uri": "git://github.com/kubevela/kubevela/master/charts/vela-core/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 122.5 122.5\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003eKubeVela \u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevela/v1.9.11/v1.0.0/model.json b/server/meshmodel/kubevela/v1.9.11/v1.0.0/model.json new file mode 100644 index 00000000000..a60b97ef1ec --- /dev/null +++ b/server/meshmodel/kubevela/v1.9.11/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevela", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#006fff", + "secondaryColor": "#45B4FF\n", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#006fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 122.5 122.5\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eKubeVela \u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M32.05,96.24a11.58,11.58,0,0,0,10,5.79,11.34,11.34,0,0,0,5.62-1.47,6,6,0,0,1,5.89,0A11.33,11.33,0,0,0,59.19,102a11.52,11.52,0,0,0,5.27-1.27,6.17,6.17,0,0,1,5.7,0,11.55,11.55,0,0,0,15.28-4.52Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M91.52,76.27,91.38,74C90,51.79,81.7,30.91,68.07,15.23h0v60Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M64.86,75.05V27.8A79.26,79.26,0,0,0,42,74Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M43.87,78.38,42,74,20.35,73l6,14.12h0a10.16,10.16,0,0,0,8.79,5.08A10,10,0,0,0,40,91a7.32,7.32,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.3,7.3,0,0,1,7.17,0,10,10,0,0,0,9.78,0,7.32,7.32,0,0,1,7.17,0A10,10,0,0,0,86,92.23a10.16,10.16,0,0,0,8.79-5.08l2.46-5L46,79.84A2.38,2.38,0,0,1,43.87,78.38Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.11" + }, + "name": "kubevela", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/kubevirt/v0.21.1/v1.0.0/components/SSP.json b/server/meshmodel/kubevirt/v0.21.1/v1.0.0/components/SSP.json new file mode 100644 index 00000000000..39e3e6f7bce --- /dev/null +++ b/server/meshmodel/kubevirt/v0.21.1/v1.0.0/components/SSP.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "SSP", + "schema": "{\n \"description\": \"SSP is the Schema for the ssps API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"SSPSpec defines the desired state of SSP\",\n \"properties\": {\n \"commonInstancetypes\": {\n \"description\": \"CommonInstancetypes is the configuration of the common-instancetypes operand\",\n \"properties\": {\n \"url\": {\n \"description\": \"URL of a remote Kustomize target from which to generate and deploy resources.\\n\\n\\nThe following caveats apply to the provided URL:\\n\\n\\n* Only 'https://' and 'git://' URLs are supported.\\n\\n\\n* The URL must include '?ref=$ref' or '?version=$ref' pinning it to a specific\\n reference. It is recommended that the reference be a specific commit or tag\\n to ensure the generated contents does not change over time. As such it is\\n recommended not to use branches as the ref for the time being.\\n\\n\\n* Only VirtualMachineClusterPreference and VirtualMachineClusterInstancetype\\n resources generated from the URL are deployed by the operand.\\n\\n\\nSee the following Kustomize documentation for more details:\\n\\n\\nremote targets\\nhttps://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"commonTemplates\": {\n \"description\": \"CommonTemplates is the configuration of the common templates operand\",\n \"properties\": {\n \"dataImportCronTemplates\": {\n \"description\": \"DataImportCronTemplates defines a list of DataImportCrons managed by the SSP\\nOperator. This is intended for images used by CommonTemplates.\",\n \"items\": {\n \"description\": \"DataImportCronTemplate defines the template type for DataImportCrons.\\nIt requires metadata.name to be specified while leaving namespace as optional.\",\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"DataImportCronSpec defines specification for DataImportCron\",\n \"properties\": {\n \"garbageCollect\": {\n \"description\": \"GarbageCollect specifies whether old PVCs should be cleaned up after a new PVC is imported.\\nOptions are currently \\\"Outdated\\\" and \\\"Never\\\", defaults to \\\"Outdated\\\".\",\n \"type\": \"string\"\n },\n \"importsToKeep\": {\n \"description\": \"Number of import PVCs to keep when garbage collecting. Default is 3.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"managedDataSource\": {\n \"description\": \"ManagedDataSource specifies the name of the corresponding DataSource this cron will manage.\\nDataSource has to be in the same namespace.\",\n \"type\": \"string\"\n },\n \"retentionPolicy\": {\n \"description\": \"RetentionPolicy specifies whether the created DataVolumes and DataSources are retained when their DataImportCron is deleted. Default is RatainAll.\",\n \"type\": \"string\"\n },\n \"schedule\": {\n \"description\": \"Schedule specifies in cron format when and how often to look for new imports\",\n \"type\": \"string\"\n },\n \"template\": {\n \"description\": \"Template specifies template for the DVs to be created\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object.\\nServers should convert recognized schemas to the latest internal value, and\\nmay reject unrecognized values.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents.\\nServers may infer this from the endpoint the client submits requests to.\\nCannot be updated.\\nIn CamelCase.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"DataVolumeSpec defines the DataVolume type specification\",\n \"properties\": {\n \"checkpoints\": {\n \"description\": \"Checkpoints is a list of DataVolumeCheckpoints, representing stages in a multistage import.\",\n \"items\": {\n \"description\": \"DataVolumeCheckpoint defines a stage in a warm migration.\",\n \"properties\": {\n \"current\": {\n \"description\": \"Current is the identifier of the snapshot created for this checkpoint.\",\n \"type\": \"string\"\n },\n \"previous\": {\n \"description\": \"Previous is the identifier of the snapshot from the previous checkpoint.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"current\",\n \"previous\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"contentType\": {\n \"description\": \"DataVolumeContentType options: \\\"kubevirt\\\", \\\"archive\\\"\",\n \"enum\": [\n \"kubevirt\",\n \"archive\"\n ],\n \"type\": \"string\"\n },\n \"finalCheckpoint\": {\n \"description\": \"FinalCheckpoint indicates whether the current DataVolumeCheckpoint is the final checkpoint.\",\n \"type\": \"boolean\"\n },\n \"preallocation\": {\n \"description\": \"Preallocation controls whether storage for DataVolumes should be allocated in advance.\",\n \"type\": \"boolean\"\n },\n \"priorityClassName\": {\n \"description\": \"PriorityClassName for Importer, Cloner and Uploader pod\",\n \"type\": \"string\"\n },\n \"pvc\": {\n \"description\": \"PVC is the PVC specification\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either:\\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\\n* An existing PVC (PersistentVolumeClaim)\\nIf the provisioner or an external controller can support the specified data source,\\nit will create a new volume based on the contents of the specified data source.\\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\\nvolume is desired. This may be any object from a non-empty API group (non\\ncore object) or a PersistentVolumeClaim object.\\nWhen this field is specified, volume binding will only succeed if the type of\\nthe specified object matches some installed volume populator or dynamic\\nprovisioner.\\nThis field will replace the functionality of the dataSource field and as such\\nif both fields are non-empty, they must have the same value. For backwards\\ncompatibility, when namespace isn't specified in dataSourceRef,\\nboth fields (dataSource and dataSourceRef) will be set to the same\\nvalue automatically if one of them is empty and the other is non-empty.\\nWhen namespace is specified in dataSourceRef,\\ndataSource isn't set to the same value and must be empty.\\nThere are three important differences between dataSource and dataSourceRef:\\n* While dataSource only allows two specific types of objects, dataSourceRef\\n allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n preserves all values, and generates an error if a disallowed value is\\n specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have.\\nIf RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\\nthat are lower than previous value but must still be higher than capacity recorded in the\\nstatus field of the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\\nIf specified, the CSI driver will create or update the volume with the attributes defined\\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\\nwill be set by the persistentvolume controller if it exists.\\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\\nexists.\\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"source\": {\n \"description\": \"Source is the src of the data for the requested DataVolume\",\n \"properties\": {\n \"blank\": {\n \"description\": \"DataVolumeBlankImage provides the parameters to create a new raw blank image for the PVC\",\n \"type\": \"object\"\n },\n \"gcs\": {\n \"description\": \"DataVolumeSourceGCS provides the parameters to create a Data Volume from an GCS source\",\n \"properties\": {\n \"secretRef\": {\n \"description\": \"SecretRef provides the secret reference needed to access the GCS source\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL is the url of the GCS source\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"http\": {\n \"description\": \"DataVolumeSourceHTTP can be either an http or https endpoint, with an optional basic auth user name and password, and an optional configmap containing additional CAs\",\n \"properties\": {\n \"certConfigMap\": {\n \"description\": \"CertConfigMap is a configmap reference, containing a Certificate Authority(CA) public key, and a base64 encoded pem certificate\",\n \"type\": \"string\"\n },\n \"extraHeaders\": {\n \"description\": \"ExtraHeaders is a list of strings containing extra headers to include with HTTP transfer requests\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"secretExtraHeaders\": {\n \"description\": \"SecretExtraHeaders is a list of Secret references, each containing an extra HTTP header that may include sensitive information\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef A Secret reference, the secret should contain accessKeyId (user name) base64 encoded, and secretKey (password) also base64 encoded\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL is the URL of the http(s) endpoint\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"imageio\": {\n \"description\": \"DataVolumeSourceImageIO provides the parameters to create a Data Volume from an imageio source\",\n \"properties\": {\n \"certConfigMap\": {\n \"description\": \"CertConfigMap provides a reference to the CA cert\",\n \"type\": \"string\"\n },\n \"diskId\": {\n \"description\": \"DiskID provides id of a disk to be imported\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef provides the secret reference needed to access the ovirt-engine\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL is the URL of the ovirt-engine\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"diskId\",\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"pvc\": {\n \"description\": \"DataVolumeSourcePVC provides the parameters to create a Data Volume from an existing PVC\",\n \"properties\": {\n \"name\": {\n \"description\": \"The name of the source PVC\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"The namespace of the source PVC\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"registry\": {\n \"description\": \"DataVolumeSourceRegistry provides the parameters to create a Data Volume from an registry source\",\n \"properties\": {\n \"certConfigMap\": {\n \"description\": \"CertConfigMap provides a reference to the Registry certs\",\n \"type\": \"string\"\n },\n \"imageStream\": {\n \"description\": \"ImageStream is the name of image stream for import\",\n \"type\": \"string\"\n },\n \"pullMethod\": {\n \"description\": \"PullMethod can be either \\\"pod\\\" (default import), or \\\"node\\\" (node docker cache based import)\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef provides the secret reference needed to access the Registry source\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL is the url of the registry source (starting with the scheme: docker, oci-archive)\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"s3\": {\n \"description\": \"DataVolumeSourceS3 provides the parameters to create a Data Volume from an S3 source\",\n \"properties\": {\n \"certConfigMap\": {\n \"description\": \"CertConfigMap is a configmap reference, containing a Certificate Authority(CA) public key, and a base64 encoded pem certificate\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef provides the secret reference needed to access the S3 source\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL is the url of the S3 source\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"snapshot\": {\n \"description\": \"DataVolumeSourceSnapshot provides the parameters to create a Data Volume from an existing VolumeSnapshot\",\n \"properties\": {\n \"name\": {\n \"description\": \"The name of the source VolumeSnapshot\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"The namespace of the source VolumeSnapshot\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"upload\": {\n \"description\": \"DataVolumeSourceUpload provides the parameters to create a Data Volume by uploading the source\",\n \"type\": \"object\"\n },\n \"vddk\": {\n \"description\": \"DataVolumeSourceVDDK provides the parameters to create a Data Volume from a Vmware source\",\n \"properties\": {\n \"backingFile\": {\n \"description\": \"BackingFile is the path to the virtual hard disk to migrate from vCenter/ESXi\",\n \"type\": \"string\"\n },\n \"initImageURL\": {\n \"description\": \"InitImageURL is an optional URL to an image containing an extracted VDDK library, overrides v2v-vmware config map\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"SecretRef provides a reference to a secret containing the username and password needed to access the vCenter or ESXi host\",\n \"type\": \"string\"\n },\n \"thumbprint\": {\n \"description\": \"Thumbprint is the certificate thumbprint of the vCenter or ESXi host\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL is the URL of the vCenter or ESXi host with the VM to migrate\",\n \"type\": \"string\"\n },\n \"uuid\": {\n \"description\": \"UUID is the UUID of the virtual machine that the backing file is attached to in vCenter/ESXi\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"sourceRef\": {\n \"description\": \"SourceRef is an indirect reference to the source of data for the requested DataVolume\",\n \"properties\": {\n \"kind\": {\n \"description\": \"The kind of the source reference, currently only \\\"DataSource\\\" is supported\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"The name of the source reference\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"The namespace of the source reference, defaults to the DataVolume namespace\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"storage\": {\n \"description\": \"Storage is the requested storage specification\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"AccessModes contains the desired access modes the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) * An existing custom resource that implements data population (Alpha) In order to use custom resource types that implement data population, the AnyVolumeDataSource feature gate must be enabled. If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source.\\nIf the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"description\": \"Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner.\\nThis field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty.\\nThere are two important differences between DataSource and DataSourceRef:\\n* While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced.\\nIf APIGroup is not specified, the specified Kind must be in the core API group.\\nFor any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced\\nNote that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\\n(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources represents the minimum resources the volume should have.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\n\\n\\nThis field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of\\nthe Pod where this field is used. It makes that resource available\\ninside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required.\\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\\notherwise to an implementation-defined value. Requests cannot exceed Limits.\\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"A label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"description\": \"Name of the StorageClass required by the claim.\\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim.\\nValue of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"DataVolumeStatus contains the current status of the DataVolume\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"ClaimName is the name of the underlying PVC used by the DataVolume.\",\n \"type\": \"string\"\n },\n \"conditions\": {\n \"items\": {\n \"description\": \"DataVolumeCondition represents the state of a data volume condition.\",\n \"properties\": {\n \"lastHeartbeatTime\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"lastTransitionTime\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"reason\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"DataVolumeConditionType is the string representation of known condition types\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"phase\": {\n \"description\": \"Phase is the current phase of the data volume\",\n \"type\": \"string\"\n },\n \"progress\": {\n \"description\": \"DataVolumeProgress is the current progress of the DataVolume transfer operation. Value between 0 and 100 inclusive, N/A if not available\",\n \"type\": \"string\"\n },\n \"restartCount\": {\n \"description\": \"RestartCount is the number of times the pod populating the DataVolume has restarted\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"managedDataSource\",\n \"schedule\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the k8s namespace where CommonTemplates should be installed\",\n \"maxLength\": 63,\n \"pattern\": \"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"featureGates\": {\n \"description\": \"FeatureGates is the configuration of the tekton operands\",\n \"properties\": {\n \"deployTektonTaskResources\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeLabeller\": {\n \"description\": \"NodeLabeller is configuration of the node-labeller operand\",\n \"properties\": {\n \"placement\": {\n \"description\": \"Placement describes the node scheduling configuration\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"affinity enables pod affinity/anti-affinity placement expanding the types of constraints\\nthat can be expressed with nodeSelector.\\naffinity is going to be applied to the relevant kind of pods in parallel with nodeSelector\\nSee https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"nodeSelector is the node selector applied to the relevant kind of pods\\nIt specifies a map of key-value pairs: for the pod to be eligible to run on a node,\\nthe node must have each of the indicated key-value pairs as labels\\n(it can have additional labels as well).\\nSee https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector\",\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"description\": \"tolerations is a list of tolerations applied to the relevant kind of pods\\nSee https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info.\\nThese are additional tolerations other than default ones.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tektonPipelines\": {\n \"description\": \"TektonPipelines is the configuration of the tekton-pipelines operand\",\n \"properties\": {\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tektonTasks\": {\n \"description\": \"TektonTasks is the configuration of the tekton-tasks operand\",\n \"properties\": {\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"templateValidator\": {\n \"description\": \"TemplateValidator is configuration of the template validator operand\",\n \"properties\": {\n \"placement\": {\n \"description\": \"Placement describes the node scheduling configuration\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"affinity enables pod affinity/anti-affinity placement expanding the types of constraints\\nthat can be expressed with nodeSelector.\\naffinity is going to be applied to the relevant kind of pods in parallel with nodeSelector\\nSee https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to an update), the system\\nmay or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of\\nthem are ANDed.\\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy\\nthe anti-affinity expressions specified by this field, but it may choose\\na node that violates one or more of the expressions. The node that is\\nmost preferred is the one with the greatest sum of weights, i.e.\\nfor each node that meets all of the scheduling requirements (resource\\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\\ncompute a sum by iterating through the elements of this field and adding\\n\\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\\nnode(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm,\\nin the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at\\nscheduling time, the pod will not be scheduled onto the node.\\nIf the anti-affinity requirements specified by this field cease to be met\\nat some point during pod execution (e.g. due to a pod label update), the\\nsystem may or may not try to eventually evict the pod from its node.\\nWhen there are multiple elements, the lists of nodes corresponding to each\\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector\\nrelative to the given namespace(s)) that this pod should be\\nco-located (affinity) or not co-located (anti-affinity) with,\\nwhere co-located is defined as running on a node whose value of\\nthe label with key \\u003ctopologyKey\\u003e matches that of any node on which\\na pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\\nIf it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will\\nbe taken into consideration. The keys are used to lookup values from the\\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\\nto select the group of existing pods which pods will be taken into consideration\\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\\npod labels will be ignored. The default value is empty.\\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to.\\nThe term is applied to the union of the namespaces selected by this field\\nand the ones listed in the namespaces field.\\nnull selector and null or empty namespaces list means \\\"this pod's namespace\\\".\\nAn empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to.\\nThe term is applied to the union of the namespaces listed in this field\\nand the ones selected by namespaceSelector.\\nnull or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\\nwhose value of the label with key topologyKey matches that of any node on which any of the\\nselected pods is running.\\nEmpty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"nodeSelector is the node selector applied to the relevant kind of pods\\nIt specifies a map of key-value pairs: for the pod to be eligible to run on a node,\\nthe node must have each of the indicated key-value pairs as labels\\n(it can have additional labels as well).\\nSee https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector\",\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"description\": \"tolerations is a list of tolerations applied to the relevant kind of pods\\nSee https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info.\\nThese are additional tolerations other than default ones.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"default\": 2,\n \"description\": \"Replicas is the number of replicas of the template validator pod\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsSecurityProfile\": {\n \"description\": \"TLSSecurityProfile is a configuration for the TLS.\",\n \"properties\": {\n \"custom\": {\n \"description\": \"custom is a user-defined TLS security profile. Be extremely careful using a custom\\nprofile as invalid configurations can be catastrophic. An example custom profile\\nlooks like this:\\n\\n\\n ciphers:\\n\\n\\n - ECDHE-ECDSA-CHACHA20-POLY1305\\n\\n\\n - ECDHE-RSA-CHACHA20-POLY1305\\n\\n\\n - ECDHE-RSA-AES128-GCM-SHA256\\n\\n\\n - ECDHE-ECDSA-AES128-GCM-SHA256\\n\\n\\n minTLSVersion: VersionTLS11\",\n \"nullable\": true,\n \"properties\": {\n \"ciphers\": {\n \"description\": \"ciphers is used to specify the cipher algorithms that are negotiated\\nduring the TLS handshake. Operators may remove entries their operands\\ndo not support. For example, to use DES-CBC3-SHA (yaml):\\n\\n\\n ciphers:\\n - DES-CBC3-SHA\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"minTLSVersion\": {\n \"description\": \"minTLSVersion is used to specify the minimal version of the TLS protocol\\nthat is negotiated during the TLS handshake. For example, to use TLS\\nversions 1.1, 1.2 and 1.3 (yaml):\\n\\n\\n minTLSVersion: VersionTLS11\\n\\n\\nNOTE: currently the highest minTLSVersion allowed is VersionTLS12\",\n \"enum\": [\n \"VersionTLS10\",\n \"VersionTLS11\",\n \"VersionTLS12\",\n \"VersionTLS13\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"intermediate\": {\n \"description\": \"intermediate is a TLS security profile based on:\\n\\n\\nhttps://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29\\n\\n\\nand looks like this (yaml):\\n\\n\\n ciphers:\\n\\n\\n - TLS_AES_128_GCM_SHA256\\n\\n\\n - TLS_AES_256_GCM_SHA384\\n\\n\\n - TLS_CHACHA20_POLY1305_SHA256\\n\\n\\n - ECDHE-ECDSA-AES128-GCM-SHA256\\n\\n\\n - ECDHE-RSA-AES128-GCM-SHA256\\n\\n\\n - ECDHE-ECDSA-AES256-GCM-SHA384\\n\\n\\n - ECDHE-RSA-AES256-GCM-SHA384\\n\\n\\n - ECDHE-ECDSA-CHACHA20-POLY1305\\n\\n\\n - ECDHE-RSA-CHACHA20-POLY1305\\n\\n\\n - DHE-RSA-AES128-GCM-SHA256\\n\\n\\n - DHE-RSA-AES256-GCM-SHA384\\n\\n\\n minTLSVersion: VersionTLS12\",\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"modern\": {\n \"description\": \"modern is a TLS security profile based on:\\n\\n\\nhttps://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility\\n\\n\\nand looks like this (yaml):\\n\\n\\n ciphers:\\n\\n\\n - TLS_AES_128_GCM_SHA256\\n\\n\\n - TLS_AES_256_GCM_SHA384\\n\\n\\n - TLS_CHACHA20_POLY1305_SHA256\\n\\n\\n minTLSVersion: VersionTLS13\",\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"old\": {\n \"description\": \"old is a TLS security profile based on:\\n\\n\\nhttps://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility\\n\\n\\nand looks like this (yaml):\\n\\n\\n ciphers:\\n\\n\\n - TLS_AES_128_GCM_SHA256\\n\\n\\n - TLS_AES_256_GCM_SHA384\\n\\n\\n - TLS_CHACHA20_POLY1305_SHA256\\n\\n\\n - ECDHE-ECDSA-AES128-GCM-SHA256\\n\\n\\n - ECDHE-RSA-AES128-GCM-SHA256\\n\\n\\n - ECDHE-ECDSA-AES256-GCM-SHA384\\n\\n\\n - ECDHE-RSA-AES256-GCM-SHA384\\n\\n\\n - ECDHE-ECDSA-CHACHA20-POLY1305\\n\\n\\n - ECDHE-RSA-CHACHA20-POLY1305\\n\\n\\n - DHE-RSA-AES128-GCM-SHA256\\n\\n\\n - DHE-RSA-AES256-GCM-SHA384\\n\\n\\n - DHE-RSA-CHACHA20-POLY1305\\n\\n\\n - ECDHE-ECDSA-AES128-SHA256\\n\\n\\n - ECDHE-RSA-AES128-SHA256\\n\\n\\n - ECDHE-ECDSA-AES128-SHA\\n\\n\\n - ECDHE-RSA-AES128-SHA\\n\\n\\n - ECDHE-ECDSA-AES256-SHA384\\n\\n\\n - ECDHE-RSA-AES256-SHA384\\n\\n\\n - ECDHE-ECDSA-AES256-SHA\\n\\n\\n - ECDHE-RSA-AES256-SHA\\n\\n\\n - DHE-RSA-AES128-SHA256\\n\\n\\n - DHE-RSA-AES256-SHA256\\n\\n\\n - AES128-GCM-SHA256\\n\\n\\n - AES256-GCM-SHA384\\n\\n\\n - AES128-SHA256\\n\\n\\n - AES256-SHA256\\n\\n\\n - AES128-SHA\\n\\n\\n - AES256-SHA\\n\\n\\n - DES-CBC3-SHA\\n\\n\\n minTLSVersion: VersionTLS10\",\n \"nullable\": true,\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"type is one of Old, Intermediate, Modern or Custom. Custom provides\\nthe ability to specify individual TLS security profile parameters.\\nOld, Intermediate and Modern are TLS security profiles based on:\\n\\n\\nhttps://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations\\n\\n\\nThe profiles are intent based, so they may change over time as new ciphers are developed and existing ciphers\\nare found to be insecure. Depending on precisely which ciphers are available to a process, the list may be\\nreduced.\\n\\n\\nNote that the Modern profile is currently not supported because it is not\\nyet well adopted by common software libraries.\",\n \"enum\": [\n \"Old\",\n \"Intermediate\",\n \"Modern\",\n \"Custom\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"commonTemplates\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"SSP\",\n \"type\": \"object\"\n}", + "version": "ssp.kubevirt.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "SSP", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/kubevirt/ssp-operator/main/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevirt", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00aab2", + "secondaryColor": "#45EFF7", + "shape": "circle", + "source_uri": "git://github.com/kubevirt/ssp-operator/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-1.20 3.05 361.40 349.90\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none}.cls-2{fill:#00aab2}.cls-3{fill:#fff}.cls-4{fill:#00797f}.cls-5{fill:#3accc5}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M192.7065 271.38809l6.773-13.54613a9.49468 9.49468 0 0 1 5.649-4.40547 9.348 9.348 0 0 0-5.83716 4.40547l-6.773 13.54613A9.23964 9.23964 0 0 0 197.8555 284.34c-.27577-.103-.55028-.21621-.82177-.34655a9.40792 9.40792 0 0 1-4.32723-12.60536zm25.96331-29.91426a9.40808 9.40808 0 0 1-4.32723-12.60541l13.358-26.90394a9.3473 9.3473 0 0 1 6.301-4.843 9.12 9.12 0 0 0-6.48913 5.03114l-13.54613 26.904a9.43238 9.43238 0 0 0 12.74781 12.53488 9.4831 9.4831 0 0 1-8.04432-.11767zM187.25048 18.90445q.56443.28221 1.12878.56443l115.89414 55.5012c1.317.75258 2.63394 1.6933 3.951 2.634a19.91834 19.91834 0 0 1 2.25765 1.88136l-13.71334 27.09217h.16729l-8.91839 17.65839L310.73 79.54979c-.02052-.02061-.03937-.04381-.05989-.06433a19.93238 19.93238 0 0 0-2.25765-1.88136 20.6252 20.6252 0 0 0-3.95094-2.634L188.56741 19.46888q-.56431-.28221-1.12878-.56443a12.1699 12.1699 0 0 0-2.44588-.75258c-.17616-.04406-.38056-.05989-.57256-.08812.12817.03108.25634.05612.38442.08812a9.31469 9.31469 0 0 1 2.44587.75258zm-8.27817-1.31701a47.95077 47.95077 0 0 0-7.33746.37629 9.44272 9.44272 0 0 0-2.25765.37629c.94064-.18815 1.69322-.18815 2.44579-.37629a45.53642 45.53642 0 0 1 7.14932-.37629zm28.4091 131.88598a9.52851 9.52851 0 0 0 2.79276.9403 9.22039 9.22039 0 0 1-2.60462-.9403 9.76617 9.76617 0 0 1-3.95094-12.79342 9.474 9.474 0 0 0 3.7628 12.79342zm61.52172-24.08187h-.18813a9.56425 9.56425 0 0 0 4.51529 6.20867 9.03611 9.03611 0 0 0 6.74379.97758 9.46073 9.46073 0 0 1-11.07095-7.18625zm-34.61769-6.39674L220.175 145.52256l14.29863-26.52775a9.53885 9.53885 0 0 0-3.951-12.79347 8.73982 8.73982 0 0 0-4.32723-1.12886h-.18815a8.73961 8.73961 0 0 1 4.32724 1.12886 9.42567 9.42567 0 0 1 3.95095 12.79347zM49.39156 76.94735c-.04474.03711-.087.07615-.13144.11351L103.29093 185.629l-1.47031-3.00185zM148.117 277.408l.162-.242-29.068-59.113 28.906 59.355zm100.09078-161.42341a9.31556 9.31556 0 0 1 9.40695-9.407h-.18814a9.407 9.407 0 1 0 0 18.81392h.18814a9.31561 9.31561 0 0 1-9.40695-9.40692zm-42.89587 57.75893l-14.11048 26.52766a9.36557 9.36557 0 0 1-16.98852-.714 9.3451 9.3451 0 0 0 4.38311 4.85314 9.53881 9.53881 0 0 0 12.79355-3.951L205.5 173.93166a9.40166 9.40166 0 0 0-1.80136-11.26092 9.43369 9.43369 0 0 1 1.61327 11.07278zm-49.29261 48.91631a9.48444 9.48444 0 0 1 17.44212 1.64782 9.43241 9.43241 0 0 0-17.44212-1.836l-7.5256 14.29862-53.0554-112.5075 53.0554 112.69569zM148.494 276.844l30.761 61.71h.094l-30.807-61.8-.048.09zm11.852-95.575l10.536-19.378-30.478-56.254h-.087l30.377 56.254-10.348 19.378zm81.84125-7.71363l13.358-26.904v-.18814a8.93718 8.93718 0 0 1 2.17371-2.86631 9.18734 9.18734 0 0 0-2.36185 3.05445l-13.358 26.904a9.26028 9.26028 0 0 0 3.19837 11.85284 8.77683 8.77683 0 0 0 4.61824 1.66012 9.61806 9.61806 0 0 1-3.30123-.90763 9.408 9.408 0 0 1-4.32724-12.60533z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M344.74183 223.16136c-.0093.02094-.00787.04188-.01835.06282a24.52526 24.52526 0 0 1-3.7628 8.09L320.64161 256.525l-59.82851 73.93886a19.68752 19.68752 0 0 1-12.79347 7.5256 39.608 39.608 0 0 1-4.70352.37629h-63.77937l28.57873-56.42c-.06676.07045-.13126.14316-.19979.21126l-28.56709 56.39685v.18814H243.316a39.60816 39.60816 0 0 0 4.70352-.37628 19.24954 19.24954 0 0 0 12.79347-7.5256l59.82851-73.93891 20.31907-25.21065a26.42206 26.42206 0 0 0 3.7628-8.09l.00008-.00067a5.29569 5.29569 0 0 1 .14618-.8768 1.70441 1.70441 0 0 1-.1278.43827zm.90688-7.66952a24.86724 24.86724 0 0 1-.73708 6.60356c0 .14634-.00729.29277-.01835.43912-.00159.02069-.0005.04138-.00259.06207.0041-.04138.02077-.08285.02077-.12423l.00008-.00067a25.54405 25.54405 0 0 0 .73717-6.97985z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M115.38108 338.55389a10.72708 10.72708 0 0 1-2.44579-.18814 15.93175 15.93175 0 0 1-3.19837-.75258 28.27655 28.27655 0 0 1-11.85283-6.96108L71.1682 297.91575l-10.47015-12.977 10.282 12.78887 26.71589 33.11254a29.8032 29.8032 0 0 0 12.041 6.96116l.00193.00051a19.70422 19.70422 0 0 0 3.19644.75207c.75249 0 1.69321.18814 2.44579.18814h63.96751l-.09382-.18814z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M52.87071 74.57478q-1.12257.64534-2.24541 1.37288c-.31371.23455-.616.4748-.905.71572-.11392.09114-.21687.19116-.3287.284l52.42906 105.67982-37.80173-77.1784h76.19663l.10162.18814h.08653l30.4786 56.25377-10.53582 19.37844-.37629.18814-30.85489-57.19449H95.4383l53.0554 112.50754 7.5256-14.29862a9.43241 9.43241 0 0 1 17.44212 1.836c.01734.05671.02916.11459.04541.17155.04825.17952.09842.35828.136.54056a9.317 9.317 0 0 1-.87915 6.48268l-13.7342 25.77509-10.48715 19.4761 30.80622 61.80026 28.56713-56.39696a9.50054 9.50054 0 0 1-10.06018 2.183 9.23964 9.23964 0 0 1-5.33715-12.95188l6.773-13.54613a9.348 9.348 0 0 1 5.83716-4.40547 9.36462 9.36462 0 0 1 11.46049 11.76803l12.7933-25.41136a9.61839 9.61839 0 0 1-2.6682 1.79834 9.43238 9.43238 0 0 1-12.74781-12.53488l13.54613-26.904a9.12 9.12 0 0 1 6.48913-5.03114 9.25737 9.25737 0 0 1 11.0551 11.65187l12.52793-24.64738a9.52394 9.52394 0 0 1-7.76887 2.94229 8.77683 8.77683 0 0 1-4.61824-1.66012 9.26028 9.26028 0 0 1-3.19837-11.85284l13.358-26.904a9.18734 9.18734 0 0 1 2.36185-3.05445 9.54993 9.54993 0 0 1 10.43162-1.2727 9.1824 9.1824 0 0 1 4.13909 12.60533l-3.85931 7.815 16.76712-33.09294a9.52346 9.52346 0 0 1-5.00593 2.88926c-.07254.01617-.14491.02253-.21746.03694a9.03611 9.03611 0 0 1-6.74379-.97758 9.56425 9.56425 0 0 1-4.51529-6.20867h-11.2884a9.407 9.407 0 1 1 0-18.81392h39.34207L310.482 79.48546a19.91834 19.91834 0 0 0-2.25765-1.88136c-1.317-.94072-2.63394-1.88144-3.951-2.634L188.37926 19.46888q-.5643-.28221-1.12878-.56443c-.75257-.18814-1.50515-.56443-2.44587-.75258-.12808-.032-.25625-.057-.38442-.08812-.628-.0924-1.29682-.14408-1.87323-.28816a22.76746 22.76746 0 0 0-3.57465-.18815 45.53642 45.53642 0 0 0-7.14932.37629c-.75257.18814-1.50515.18814-2.44579.37629L53.67121 74.21759c-.27543.10328-.53763.23103-.8005.35719zM203.61861 136.68l16.55639-31.60752h6.02045a8.73982 8.73982 0 0 1 4.32723 1.12886 9.53885 9.53885 0 0 1 3.951 12.79347L220.175 145.52256a9.24039 9.24039 0 0 1-10.00079 4.89116 9.28868 9.28868 0 0 1-6.5556-13.73372zm-29.16168 54.7487l14.11056-26.52774a9.59585 9.59585 0 0 1 16.93251 9.0307l-14.11048 26.52766a9.53881 9.53881 0 0 1-12.79355 3.951 9.3451 9.3451 0 0 1-4.38311-4.85314 9.95367 9.95367 0 0 1 .24407-8.12853z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M187.25048 18.90445a9.31469 9.31469 0 0 0-2.44587-.75258 12.16962 12.16962 0 0 1 2.44587.75258z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M187.25048 18.90445a12.16962 12.16962 0 0 0-2.44587-.75258c.94072.18813 1.6933.56444 2.44587.75258zM50.6253 75.94766q1.1227-.7254 2.24541-1.37288a13.59871 13.59871 0 0 0-2.24541 1.37288z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M353.00158 212.31215l-.18815-.75257L323.84 87.1992v-.56443a31.87872 31.87872 0 0 0-15.8038-18.43771h-.37628l-115.89406-55.5012a27.43753 27.43753 0 0 0-12.79355-2.63394 45.80265 45.80265 0 0 0-11.2884.94064l-.75258.18815-.75249.37628L50.2847 67.44456a28.234 28.234 0 0 0-15.61555 19.19021L6.26 211.55958v.37629a31.70153 31.70153 0 0 0 5.456 23.89372l.18814.18815.18815.18814 79.95943 99.33779.18806.37629.37629.18814a34.82016 34.82016 0 0 0 22.38866 10.15953H243.128c9.97139 0 18.24956-3.95094 23.51743-10.91211l80.14757-99.14964.18814-.18814.18814-.18815a32.69776 32.69776 0 0 0 5.8323-23.51744zm-8.08995 10.15954c0 .04188-.01684.08368-.02094.12557-.00419.04172-.01441.08352-.02086.12515a5.30229 5.30229 0 0 0-.14635.87814v-.00067l-.00008.00067a26.42206 26.42206 0 0 1-3.7628 8.09l-20.31907 25.21065-59.82853 73.93895a19.24954 19.24954 0 0 1-12.79347 7.5256 39.60816 39.60816 0 0 1-4.70352.37628h-127.935a10.72708 10.72708 0 0 1-2.44579-.18814 19.67872 19.67872 0 0 1-3.19837-.75249l.00193.00042-.00193-.00051a29.8032 29.8032 0 0 1-12.041-6.96116l-26.7158-33.11254-10.282-12.78887-42.96155-53.24815a26.87508 26.87508 0 0 1-4.32714-11.10026 11.57224 11.57224 0 0 1-.18815-2.44587 21.45879 21.45879 0 0 1 .37621-4.89158L42.0066 88.32807a20.05066 20.05066 0 0 1 7.14931-11.47655l.04306.08645c.11334-.08905.21763-.188.33315-.27459a17.2548 17.2548 0 0 1 3.95094-2.44579L169.3772 18.34a9.44272 9.44272 0 0 1 2.25765-.37629 47.95077 47.95077 0 0 1 7.33746-.37629 22.76746 22.76746 0 0 1 3.57465.18815 8.01732 8.01732 0 0 1 1.87323.28816c.192.02823.3964.04406.57256.08812a12.1699 12.1699 0 0 1 2.44588.75258q.56444.28221 1.12878.56443l115.89414 55.5012a20.6252 20.6252 0 0 1 3.95094 2.634 19.93238 19.93238 0 0 1 2.25765 1.88136c.02052.02052.03937.04372.05989.06433l.12834-.25248a23.64466 23.64466 0 0 1 5.07972 7.14931c.18815.75258.56444 1.50507.75258 2.25765l28.78539 124.17227c.10421.8856.15506 1.75462.17265 2.61534a25.54405 25.54405 0 0 1-.73717 6.97985l-.00008.00067z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M49.344 76.85152c-.04473.0377-.08519.07941-.12967.11736l.04582.092c.0444-.03736.0867-.0764.13144-.11351zM115.38108 338.742c-.75258 0-1.6933-.18814-2.44579-.18814a10.72742 10.72742 0 0 0 2.44579.18814zm-5.64416-.9406a19.67872 19.67872 0 0 0 3.19837.75249 19.70422 19.70422 0 0 1-3.19644-.75207zm235.15377-115.20414c.0041-.04189.02094-.08369.02094-.12557l-.00017.00067c0 .04138-.01667.08285-.02077.12423zm-.16721 1.00262v.00067a5.30229 5.30229 0 0 1 .14635-.87814l-.00017.00067a5.29569 5.29569 0 0 0-.14618.8768z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M115.38108 338.742a10.72742 10.72742 0 0 1-2.44579-.18814 10.72708 10.72708 0 0 0 2.44579.18814zM49.344 76.85152l.18815-.18814c-.11552.08661-.21981.18554-.33315.27459l.01533.03091c.04445-.03795.08491-.07966.12967-.11736zm133.203-59.07593c.57641.14408 1.24522.19576 1.87323.28816a8.01732 8.01732 0 0 0-1.87323-.28816z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M49.39156 76.94735c.11183-.09281.21478-.19283.3287-.284.28909-.24092.59133-.48117.905-.71572-.36439.23547-.72879.45545-1.09318.71572l-.18815.18814zm4.27965-2.72976L169.3772 18.34 53.48306 74.21759c-.20414.1166-.4082.23983-.61235.35719.26287-.12616.52507-.25391.8005-.35719z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M52.87071 74.57478c.20415-.11736.40821-.24059.61235-.35719a17.2548 17.2548 0 0 0-3.95094 2.44579c.36439-.26027.72879-.48025 1.09318-.71572a13.59871 13.59871 0 0 1 2.24541-1.37288z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M179.255 338.554l.094.188v-.188h-.094zm-81.37091-7.90191a28.27655 28.27655 0 0 0 11.85283 6.96108 15.93175 15.93175 0 0 0 3.19837.75258 10.72708 10.72708 0 0 0 2.44579.18814h63.87369L148.4937 276.8441l-.18814.37629-.02664-.0542-.16151.24226-28.90618-59.3558-10.03874-20.41541-5.88156-12.00824L49.26012 77.06086a21.01233 21.01233 0 0 0-7.06546 11.26721L13.59742 213.25288a21.45879 21.45879 0 0 0-.37621 4.89158 9.15983 9.15983 0 0 0 .18815 2.25773 25.00431 25.00431 0 0 0 4.32714 11.10017l53.4317 66.22525-29.61294-36.59907 19.14279 23.8102 10.47015 12.977z\" class=\"cls-4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M71.168 297.728l-53.431-66.226 23.818 29.627 29.613 36.599zM42.19466 88.32807a21.01233 21.01233 0 0 1 7.06546-11.26721l-.04582-.092a20.62117 20.62117 0 0 0-7.01964 11.35921zM17.737 231.691l42.961 53.248-19.143-23.81-23.818-29.438z\" class=\"cls-4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M49.199 76.938l-.04306-.08645a20.05066 20.05066 0 0 0-7.14934 11.47652L13.59742 213.25288 42.19466 88.32807A19.29686 19.29686 0 0 1 49.199 76.938zM13.40936 220.40219a9.15983 9.15983 0 0 1-.18815-2.25773 11.57224 11.57224 0 0 0 .18815 2.44587 25.15547 25.15547 0 0 0 4.32714 10.912 25.00431 25.00431 0 0 1-4.32714-11.10014z\" class=\"cls-4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M17.7365 231.50236a25.15547 25.15547 0 0 1-4.32714-10.912 26.87508 26.87508 0 0 0 4.32714 11.10026l23.81876 29.438zM42.19466 88.32807a20.62117 20.62117 0 0 1 7.01964-11.35919l-.0153-.03088a19.29686 19.29686 0 0 0-7.00434 11.39007z\" class=\"cls-4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M287.529 125.2034l-.94072 2.634-.18814.18815a9.499 9.499 0 0 1-1.19756 1.62092L268.33384 162.94l-3.56979 7.22889-5.64416 11.85275a9.87788 9.87788 0 0 1-1.52082 2.08835L244.93846 209.156a9.70415 9.70415 0 0 1-.49348 1.2747l-3.38652 6.585-9.78324 20.31907a9.87179 9.87179 0 0 1-1.71944 2.299L216.582 265.226c-.05545.17282-.10379.3463-.1698.51786-.18814.18814-.18814.18814-.18814.37629l-6.58488 13.73419a9.87935 9.87935 0 0 1-1.52367 2.09145l-28.57873 56.42h63.77937a39.608 39.608 0 0 0 4.70352-.37629 19.68752 19.68752 0 0 0 12.79347-7.5256l59.82847-73.9389 20.31907-25.21073a24.52526 24.52526 0 0 0 3.7628-8.09c.01048-.02094.00905-.04188.01835-.06282a1.85575 1.85575 0 0 1 .15145-.62684c.01106-.14635.01835-.29278.01835-.43912a24.86724 24.86724 0 0 0 .73708-6.60356c-.02446-.75375-.08067-1.50222-.17273-2.239l-.05529-.2374L316.50244 88.8925a10.60693 10.60693 0 0 0-.75257-2.25773 23.56266 23.56266 0 0 0-5.01984-7.085L288.01761 124.236zm28.97354-36.12284c-.18815-.75249-.56444-1.50507-.75258-2.25765a10.60819 10.60819 0 0 1 .75257 2.25765z\" class=\"cls-5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M344.86966 222.72308c.00729-.04214.01692-.08436.021-.12649.00209-.02069.001-.04138.00259-.06207a1.85575 1.85575 0 0 0-.15145.62684 1.70441 1.70441 0 0 0 .12786-.43828zM315.75 86.82291c.18814.75258.56443 1.50516.75258 2.25765a10.60819 10.60819 0 0 0-.75258-2.25765zm-86.19422 152.81086c-.05595.05563-.11635.1053-.17348.15942l-12.7933 25.41136-.007.02144zM257.59907 184.11l-.01449.01608-12.52793 24.64731c-.03493.12808-.07773.25524-.11819.38266zm27.60393-54.464l-.006.006-16.767 33.093-.096.195 16.869-33.294z\" class=\"cls-5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M316.50244 88.8925l28.91825 124.123.05529.2374c.09206.73674.14827 1.48521.17273 2.239-.01759-.86072-.06844-1.72974-.17265-2.61534L316.69067 88.70427c-.18814-.75258-.56443-1.50507-.75258-2.25765a23.64466 23.64466 0 0 0-5.07972-7.14931l-.12834.25248a23.56266 23.56266 0 0 1 5.01984 7.085 10.60693 10.60693 0 0 1 .75257 2.25771zm28.36722 133.83058l.00017-.00067c.00645-.04163.01667-.08343.02086-.12515v-.00067c-.00411.04213-.01369.08435-.02103.12649z\" class=\"cls-5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M188.75555 165.089l-14.11048 26.5278a9.34134 9.34134 0 1 0 16.55636 8.65438l14.11048-26.52766a9.43369 9.43369 0 0 0-1.61322-11.07278 9.5211 9.5211 0 0 0-14.94314 2.41831z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M174.64507 191.6168l14.11048-26.5278a9.5211 9.5211 0 0 1 14.94314-2.41831 9.511 9.511 0 0 0-15.1312 2.23017l-14.11056 26.52774a9.95367 9.95367 0 0 0-.244 8.12848 9.3729 9.3729 0 0 1 .43214-7.94028zm41.76625 73.94577l-.1873.36942c.18471-.18471.18722-.19124.1873-.36942zM209.451 279.478l6.773-13.54605a9.59732 9.59732 0 0 0-4.13909-11.47654 9.29443 9.29443 0 0 0-6.95639-1.019 9.49468 9.49468 0 0 0-5.649 4.40547l-6.773 13.54613a9.40792 9.40792 0 0 0 4.32723 12.60533c.27149.13034.546.24351.82177.34655a9.5626 9.5626 0 0 0 10.65477-3.35678l-.59459 1.17385c.06853-.0681.133-.14081.19979-.21126l.583-1.15082c.18807-.3762.56436-.94064.75251-1.31688z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M212.08493 254.45545A9.59732 9.59732 0 0 1 216.224 265.932l.1873-.36942.00084-.00687.17684-.35115a9.36462 9.36462 0 0 0-11.46046-11.76806 9.29443 9.29443 0 0 1 6.95641 1.01895zM197.8555 284.34a9.50054 9.50054 0 0 0 10.06018-2.18293l.59459-1.17385A9.5626 9.5626 0 0 1 197.8555 284.34z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M216.224 266.12014c0-.18815 0-.18815.18814-.37629.066-.17156.11435-.345.1698-.51786l-.17064.33658c-.00008.17818-.00259.18471-.1873.36942l-6.773 13.54601c-.18814.3762-.56443.94064-.75257 1.31692l-.583 1.15082a9.87935 9.87935 0 0 0 1.52367-2.09145z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M216.41132 265.56257l.17064-.33658.007-.02144-.17684.35115zM148.4937 276.656l10.53582-19.56658 13.7342-25.77508a9.43315 9.43315 0 0 0 .87915-6.29454c-.03762-.18228-.08779-.361-.136-.54056-.01625-.057-.02807-.11484-.04541-.17155a9.48444 9.48444 0 0 0-17.44212-1.64782l-7.5256 14.29863L95.4383 124.26277h33.677l30.85489 57.19449.37629-.18814 10.34768-19.37844-30.377-56.25377H64.207l45.1536 92.18848 9.8506 20.22726 29.06769 59.11354.21478-.32209.04867-.09047z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M101.821 182.627l1.47 3.002 6.07 12.196-7.54-15.198zm70.94272 48.6873l-13.7342 25.77508L148.4937 276.656l.04867.09767 10.48715-19.4761 13.7342-25.77509a9.317 9.317 0 0 0 .87915-6.48268 9.43315 9.43315 0 0 1-.87915 6.2945z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"#fff\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"0\" d=\"M173.46142 224.30765c.01734.05671.02916.11459.04541.17155\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M64.207 105.637h76.11l-.101-.188H64.019l37.802 77.178 7.54 15.198-45.154-92.188zm39.084 79.992l5.881 12.008 10.039 20.416-9.85-20.228-6.07-12.196zm45.015 91.591l.188-.376-.215.322.027.054zm137.70644-149.17684l.19954-.39388 1.50515-2.82216.30048-.59116 8.91834-17.65833h-.16729l-9.4279 18.62577 9.407-18.62577h-39.13303a9.407 9.407 0 0 0 0 18.81392h11.2884a9.46073 9.46073 0 0 0 11.07094 7.18625 9.65911 9.65911 0 0 0 6.03837-4.53464z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M296.769 106.578h-.021l-9.407 18.625 9.428-18.625zm-16.79493 25.9998c.07255-.01441.14492-.02077.21746-.03694a9.52346 9.52346 0 0 0 5.00593-2.88926l.815-1.60844a9.65911 9.65911 0 0 1-6.03839 4.53464zm6.23793-4.92852l-.19954.39388.0114-.01759-.82127 1.62092a9.499 9.499 0 0 0 1.19756-1.62092l.18814-.18815.94072-2.634.48862-.96744-.30048.59116z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M286.02384 128.02557l-.0114.01759-.815 1.60844.00511-.00511zM258.17 182.97423l.19727-.38819a4.11213 4.11213 0 0 0 .56443-.94072l5.6442-11.28832 7.5256-15.23935a9.4245 9.4245 0 0 0-14.38256-11.52077 8.93718 8.93718 0 0 0-2.17371 2.86631v.18814l-13.358 26.904a9.408 9.408 0 0 0 4.32723 12.60533 9.61806 9.61806 0 0 0 3.30123.90763 9.47039 9.47039 0 0 0 8.35431-4.09406z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M267.96241 142.51234a9.18239 9.18239 0 0 1 4.13909 12.60532l-7.5256 15.23934.18815-.37629 3.66629-7.23618 3.85931-7.815a9.1824 9.1824 0 0 0-4.13909-12.60533 9.54993 9.54993 0 0 0-10.43162 1.2727 9.21467 9.21467 0 0 1 10.24347-1.08456zm-18.1467 44.55599a9.52394 9.52394 0 0 0 7.76887-2.94229l.58546-1.15181a9.47039 9.47039 0 0 1-8.35433 4.0941z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M258.93174 181.64532a4.11213 4.11213 0 0 1-.56443.94072l-.19727.38819.00913-.0119-.5801 1.14763a9.87788 9.87788 0 0 0 1.52082-2.08835l5.64416-11.85275 3.56979-7.22889-3.75794 7.417z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M264.576 170.357l3.758-7.417.096-.195-3.666 7.236-.188.376zm-6.39683 12.60533l-.00913.0119-.58546 1.15181.01449-.01608zm-28.47436 56.19011l.44154-.877c.18815-.37629.56444-.94072.75258-1.317l10.15953-20.31907 3.80151-7.47911a9.49138 9.49138 0 0 0-10.85842-12.0388 9.3473 9.3473 0 0 0-6.301 4.843l-13.358 26.90394a9.4298 9.4298 0 0 0 12.37152 12.72311 9.11894 9.11894 0 0 0 2.99074-2.43907z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M226.7141 241.59153a9.61839 9.61839 0 0 0 2.6682-1.79834l.32251-.64075a9.11894 9.11894 0 0 1-2.99071 2.43909zm13.40364-43.578a9.24534 9.24534 0 0 1 4.74226 11.14675l.19668-.38693a9.25737 9.25737 0 0 0-11.0551-11.65187 9.302 9.302 0 0 1 6.11616.89205z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M244.25683 210.61894l-3.38651 6.58488 3.82906-7.57494c.06015-.15556.10924-.31212.16059-.4686l-3.80151 7.47911-10.15953 20.31907c-.18814.37629-.56443.94072-.75258 1.317l-.44154.877c.08377-.10505.17373-.20306.2534-.31254l-.40243.79387a9.87179 9.87179 0 0 0 1.71944-2.299l9.78324-20.31907 3.38652-6.585a9.70415 9.70415 0 0 0 .49348-1.2747l-.23908.47287a9.76715 9.76715 0 0 1-.44255.99005z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M244.69938 209.62888l.23908-.47287c.04046-.12742.08326-.25458.11819-.38266l-.19668.38693c-.05135.15648-.10044.31304-.16059.4686zm-14.74117 29.21102c-.07967.10948-.16963.20749-.2534.31254l-.32251.64075c.05713-.05412.11753-.10379.17348-.15942zm14.29862-28.22096a9.76715 9.76715 0 0 0 .44255-.99006l-3.82906 7.57494zm-36.68728-61.14552a9.22039 9.22039 0 0 0 2.60462.9403 9.57056 9.57056 0 0 0 10.00079-4.89116l14.11048-26.52775a9.42567 9.42567 0 0 0-3.95094-12.79347 8.73961 8.73961 0 0 0-4.32724-1.12886H220.175L203.61861 136.68a9.76617 9.76617 0 0 0 3.95094 12.79342z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M210.17417 150.41372a9.24039 9.24039 0 0 0 10.00079-4.89116 9.57056 9.57056 0 0 1-10.00079 4.89116z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"6.10 10.85 345.80 334.30\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M115.09287 338.742l-1.852-.07941a14.868 14.868 0 0 0 1.852.07941z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M345.18784 212.87648L316.40244 88.7043c-.18817-.75263-.56445-1.50513-.75256-2.25769a23.64542 23.64542 0 0 0-5.07978-7.14929l-.12829.2525c-.02051-.02063-.03937-.04382-.05988-.06439a19.93834 19.93834 0 0 0-2.25769-1.88135 20.626 20.626 0 0 0-3.95092-2.634L188.27915 19.46889q-.56424-.28227-1.12878-.56446a12.17166 12.17166 0 0 0-2.44587-.75256c-.17614-.04407-.38055-.05988-.57257-.08814-.628-.0924-1.29681-.144-1.87323-.28814a22.76456 22.76456 0 0 0-3.57464-.18817 47.94466 47.94466 0 0 0-7.33747.37634 9.44163 9.44163 0 0 0-2.25759.37624L53.383 74.2176c-.27545.10328-.5376.231-.80047.35718a13.604 13.604 0 0 0-2.24543 1.37287c-.31372.23455-.616.47479-.905.71576-.114.09112-.21692.1911-.32873.28393-.04474.03711-.087.07617-.13141.11353l-.04584-.092-.01532-.031-.04309-.08642a20.05086 20.05086 0 0 0-7.14929 11.47656L13.30918 213.25288a21.45849 21.45849 0 0 0-.37622 4.8916 11.57114 11.57114 0 0 0 .18817 2.44587 26.87493 26.87493 0 0 0 4.32715 11.10022l42.96155 53.24816 10.282 12.78888 26.71586 33.11249a29.80244 29.80244 0 0 0 12.041 6.96118l.00189.00049a19.69944 19.69944 0 0 0 3.19647.75208c.7525 0 1.69318.18817 2.4458.18817h127.93496a39.614 39.614 0 0 0 4.70349-.37628 19.24937 19.24937 0 0 0 12.79346-7.52564l59.82855-73.9389 20.319-25.21063a26.421 26.421 0 0 0 3.76282-8.09l.00012-.00067a3.98126 3.98126 0 0 1 .12451-.77362c.007-.0343.01569-.06861.02161-.10291l.00006-.00024.00012-.00067c.00647-.04163.01666-.08344.02087-.12519v-.00067c.00409-.04138.02076-.08282.02076-.1242l.00012-.00068a25.54436 25.54436 0 0 0 .73712-6.97985c-.01755-.86075-.06842-1.72977-.17258-2.61539zm-87.877-28.76654l-.01447.01611a9.5482 9.5482 0 0 1-11.07013 2.03467 9.408 9.408 0 0 1-4.32721-12.60535l13.358-26.90405v-.18811a8.937 8.937 0 0 1 2.17371-2.86633 9.55005 9.55005 0 0 1 10.43164-1.27271 9.18249 9.18249 0 0 1 4.1391 12.60535l-3.85931 7.815-.0965.19544-3.56982 7.22888-5.64417 11.85278a9.87529 9.87529 0 0 1-1.52085 2.08832zm-13.15412 26.3208l-3.38647 6.585-9.78326 20.319a9.87121 9.87121 0 0 1-1.71943 2.29907c-.056.05561-.11633.10529-.17346.15937a9.61743 9.61743 0 0 1-2.66821 1.79834 9.42977 9.42977 0 0 1-12.37152-12.72309l13.358-26.90393a9.56395 9.56395 0 0 1 12.60535-4.1391 9.45293 9.45293 0 0 1 4.75073 10.94794c-.03491.12811-.0777.25525-.11817.38269a9.69652 9.69652 0 0 1-.49357 1.27471zM207.62748 282.157a9.50065 9.50065 0 0 1-10.06024 2.183c-.27576-.10309-.55024-.21625-.82172-.34656a9.408 9.408 0 0 1-4.32727-12.60534l6.773-13.54615a9.49475 9.49475 0 0 1 5.649-4.40545 9.36464 9.36464 0 0 1 11.46045 11.76806l-.007.02143c-.05548.17285-.10382.34631-.1698.51788-.18817.18811-.18817.18811-.18817.37628l-6.58484 13.73419a9.87977 9.87977 0 0 1-1.52368 2.09143c-.06674.07042-.13121.14317-.19973.21123zm2.25852-131.74329a9.21794 9.21794 0 0 1-2.60461-.94031 9.76615 9.76615 0 0 1-3.951-12.79345l16.5564-31.60749h5.83221a8.73886 8.73886 0 0 1 4.32721 1.12891 9.4256 9.4256 0 0 1 3.951 12.79346l-14.11047 26.52771a9.24039 9.24039 0 0 1-10.00074 4.89117zm77.3548-25.21033l-.94074 2.634-.18811.18817a9.4997 9.4997 0 0 1-1.19757 1.62091l-.00512.00513a9.52354 9.52354 0 0 1-5.00592 2.88922c-.07251.01617-.1449.02252-.21747.03692a9.46066 9.46066 0 0 1-11.07093-7.18622h-11.28843a9.407 9.407 0 1 1 0-18.8139h39.32123l-8.91833 17.65839zm-98.96149 39.69751a9.46795 9.46795 0 1 1 16.74439 8.84265l-14.11048 26.52765a9.3656 9.3656 0 0 1-16.98852-.714 9.95378 9.95378 0 0 1 .244-8.12848zm-86.74688 17.72626l-37.8018-77.17841h76.19665l.10163.18818 30.377 56.25378-10.34771 19.37842-.37628.18817-30.85486-57.19452h-33.677l53.05542 112.69568 7.52557-14.29865a9.48448 9.48448 0 0 1 17.44214 1.64783c.01734.0567.02918.11463.04541.17157.04822.17951.09839.35828.136.54059a9.317 9.317 0 0 1-.87915 6.48267l-13.73419 25.77508-10.48718 19.47608-.04865.09045-.18817.37628-.02661-.0542-29.06765-59.11352-10.03876-20.41541-5.88152-12.00822z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.21.1" + }, + "name": "kubevirt", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#00aab2", + "secondaryColor": "#45EFF7", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-1.20 3.05 361.40 349.90\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none}.cls-2{fill:#00aab2}.cls-3{fill:#fff}.cls-4{fill:#00797f}.cls-5{fill:#3accc5}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M192.7065 271.38809l6.773-13.54613a9.49468 9.49468 0 0 1 5.649-4.40547 9.348 9.348 0 0 0-5.83716 4.40547l-6.773 13.54613A9.23964 9.23964 0 0 0 197.8555 284.34c-.27577-.103-.55028-.21621-.82177-.34655a9.40792 9.40792 0 0 1-4.32723-12.60536zm25.96331-29.91426a9.40808 9.40808 0 0 1-4.32723-12.60541l13.358-26.90394a9.3473 9.3473 0 0 1 6.301-4.843 9.12 9.12 0 0 0-6.48913 5.03114l-13.54613 26.904a9.43238 9.43238 0 0 0 12.74781 12.53488 9.4831 9.4831 0 0 1-8.04432-.11767zM187.25048 18.90445q.56443.28221 1.12878.56443l115.89414 55.5012c1.317.75258 2.63394 1.6933 3.951 2.634a19.91834 19.91834 0 0 1 2.25765 1.88136l-13.71334 27.09217h.16729l-8.91839 17.65839L310.73 79.54979c-.02052-.02061-.03937-.04381-.05989-.06433a19.93238 19.93238 0 0 0-2.25765-1.88136 20.6252 20.6252 0 0 0-3.95094-2.634L188.56741 19.46888q-.56431-.28221-1.12878-.56443a12.1699 12.1699 0 0 0-2.44588-.75258c-.17616-.04406-.38056-.05989-.57256-.08812.12817.03108.25634.05612.38442.08812a9.31469 9.31469 0 0 1 2.44587.75258zm-8.27817-1.31701a47.95077 47.95077 0 0 0-7.33746.37629 9.44272 9.44272 0 0 0-2.25765.37629c.94064-.18815 1.69322-.18815 2.44579-.37629a45.53642 45.53642 0 0 1 7.14932-.37629zm28.4091 131.88598a9.52851 9.52851 0 0 0 2.79276.9403 9.22039 9.22039 0 0 1-2.60462-.9403 9.76617 9.76617 0 0 1-3.95094-12.79342 9.474 9.474 0 0 0 3.7628 12.79342zm61.52172-24.08187h-.18813a9.56425 9.56425 0 0 0 4.51529 6.20867 9.03611 9.03611 0 0 0 6.74379.97758 9.46073 9.46073 0 0 1-11.07095-7.18625zm-34.61769-6.39674L220.175 145.52256l14.29863-26.52775a9.53885 9.53885 0 0 0-3.951-12.79347 8.73982 8.73982 0 0 0-4.32723-1.12886h-.18815a8.73961 8.73961 0 0 1 4.32724 1.12886 9.42567 9.42567 0 0 1 3.95095 12.79347zM49.39156 76.94735c-.04474.03711-.087.07615-.13144.11351L103.29093 185.629l-1.47031-3.00185zM148.117 277.408l.162-.242-29.068-59.113 28.906 59.355zm100.09078-161.42341a9.31556 9.31556 0 0 1 9.40695-9.407h-.18814a9.407 9.407 0 1 0 0 18.81392h.18814a9.31561 9.31561 0 0 1-9.40695-9.40692zm-42.89587 57.75893l-14.11048 26.52766a9.36557 9.36557 0 0 1-16.98852-.714 9.3451 9.3451 0 0 0 4.38311 4.85314 9.53881 9.53881 0 0 0 12.79355-3.951L205.5 173.93166a9.40166 9.40166 0 0 0-1.80136-11.26092 9.43369 9.43369 0 0 1 1.61327 11.07278zm-49.29261 48.91631a9.48444 9.48444 0 0 1 17.44212 1.64782 9.43241 9.43241 0 0 0-17.44212-1.836l-7.5256 14.29862-53.0554-112.5075 53.0554 112.69569zM148.494 276.844l30.761 61.71h.094l-30.807-61.8-.048.09zm11.852-95.575l10.536-19.378-30.478-56.254h-.087l30.377 56.254-10.348 19.378zm81.84125-7.71363l13.358-26.904v-.18814a8.93718 8.93718 0 0 1 2.17371-2.86631 9.18734 9.18734 0 0 0-2.36185 3.05445l-13.358 26.904a9.26028 9.26028 0 0 0 3.19837 11.85284 8.77683 8.77683 0 0 0 4.61824 1.66012 9.61806 9.61806 0 0 1-3.30123-.90763 9.408 9.408 0 0 1-4.32724-12.60533z\" class=\"cls-1\"/\u003e\u003cpath d=\"M344.74183 223.16136c-.0093.02094-.00787.04188-.01835.06282a24.52526 24.52526 0 0 1-3.7628 8.09L320.64161 256.525l-59.82851 73.93886a19.68752 19.68752 0 0 1-12.79347 7.5256 39.608 39.608 0 0 1-4.70352.37629h-63.77937l28.57873-56.42c-.06676.07045-.13126.14316-.19979.21126l-28.56709 56.39685v.18814H243.316a39.60816 39.60816 0 0 0 4.70352-.37628 19.24954 19.24954 0 0 0 12.79347-7.5256l59.82851-73.93891 20.31907-25.21065a26.42206 26.42206 0 0 0 3.7628-8.09l.00008-.00067a5.29569 5.29569 0 0 1 .14618-.8768 1.70441 1.70441 0 0 1-.1278.43827zm.90688-7.66952a24.86724 24.86724 0 0 1-.73708 6.60356c0 .14634-.00729.29277-.01835.43912-.00159.02069-.0005.04138-.00259.06207.0041-.04138.02077-.08285.02077-.12423l.00008-.00067a25.54405 25.54405 0 0 0 .73717-6.97985z\" class=\"cls-1\"/\u003e\u003cpath d=\"M115.38108 338.55389a10.72708 10.72708 0 0 1-2.44579-.18814 15.93175 15.93175 0 0 1-3.19837-.75258 28.27655 28.27655 0 0 1-11.85283-6.96108L71.1682 297.91575l-10.47015-12.977 10.282 12.78887 26.71589 33.11254a29.8032 29.8032 0 0 0 12.041 6.96116l.00193.00051a19.70422 19.70422 0 0 0 3.19644.75207c.75249 0 1.69321.18814 2.44579.18814h63.96751l-.09382-.18814z\" class=\"cls-1\"/\u003e\u003cpath d=\"M52.87071 74.57478q-1.12257.64534-2.24541 1.37288c-.31371.23455-.616.4748-.905.71572-.11392.09114-.21687.19116-.3287.284l52.42906 105.67982-37.80173-77.1784h76.19663l.10162.18814h.08653l30.4786 56.25377-10.53582 19.37844-.37629.18814-30.85489-57.19449H95.4383l53.0554 112.50754 7.5256-14.29862a9.43241 9.43241 0 0 1 17.44212 1.836c.01734.05671.02916.11459.04541.17155.04825.17952.09842.35828.136.54056a9.317 9.317 0 0 1-.87915 6.48268l-13.7342 25.77509-10.48715 19.4761 30.80622 61.80026 28.56713-56.39696a9.50054 9.50054 0 0 1-10.06018 2.183 9.23964 9.23964 0 0 1-5.33715-12.95188l6.773-13.54613a9.348 9.348 0 0 1 5.83716-4.40547 9.36462 9.36462 0 0 1 11.46049 11.76803l12.7933-25.41136a9.61839 9.61839 0 0 1-2.6682 1.79834 9.43238 9.43238 0 0 1-12.74781-12.53488l13.54613-26.904a9.12 9.12 0 0 1 6.48913-5.03114 9.25737 9.25737 0 0 1 11.0551 11.65187l12.52793-24.64738a9.52394 9.52394 0 0 1-7.76887 2.94229 8.77683 8.77683 0 0 1-4.61824-1.66012 9.26028 9.26028 0 0 1-3.19837-11.85284l13.358-26.904a9.18734 9.18734 0 0 1 2.36185-3.05445 9.54993 9.54993 0 0 1 10.43162-1.2727 9.1824 9.1824 0 0 1 4.13909 12.60533l-3.85931 7.815 16.76712-33.09294a9.52346 9.52346 0 0 1-5.00593 2.88926c-.07254.01617-.14491.02253-.21746.03694a9.03611 9.03611 0 0 1-6.74379-.97758 9.56425 9.56425 0 0 1-4.51529-6.20867h-11.2884a9.407 9.407 0 1 1 0-18.81392h39.34207L310.482 79.48546a19.91834 19.91834 0 0 0-2.25765-1.88136c-1.317-.94072-2.63394-1.88144-3.951-2.634L188.37926 19.46888q-.5643-.28221-1.12878-.56443c-.75257-.18814-1.50515-.56443-2.44587-.75258-.12808-.032-.25625-.057-.38442-.08812-.628-.0924-1.29682-.14408-1.87323-.28816a22.76746 22.76746 0 0 0-3.57465-.18815 45.53642 45.53642 0 0 0-7.14932.37629c-.75257.18814-1.50515.18814-2.44579.37629L53.67121 74.21759c-.27543.10328-.53763.23103-.8005.35719zM203.61861 136.68l16.55639-31.60752h6.02045a8.73982 8.73982 0 0 1 4.32723 1.12886 9.53885 9.53885 0 0 1 3.951 12.79347L220.175 145.52256a9.24039 9.24039 0 0 1-10.00079 4.89116 9.28868 9.28868 0 0 1-6.5556-13.73372zm-29.16168 54.7487l14.11056-26.52774a9.59585 9.59585 0 0 1 16.93251 9.0307l-14.11048 26.52766a9.53881 9.53881 0 0 1-12.79355 3.951 9.3451 9.3451 0 0 1-4.38311-4.85314 9.95367 9.95367 0 0 1 .24407-8.12853z\" class=\"cls-2\"/\u003e\u003cpath d=\"M187.25048 18.90445a9.31469 9.31469 0 0 0-2.44587-.75258 12.16962 12.16962 0 0 1 2.44587.75258z\" class=\"cls-2\"/\u003e\u003cpath d=\"M187.25048 18.90445a12.16962 12.16962 0 0 0-2.44587-.75258c.94072.18813 1.6933.56444 2.44587.75258zM50.6253 75.94766q1.1227-.7254 2.24541-1.37288a13.59871 13.59871 0 0 0-2.24541 1.37288z\" class=\"cls-2\"/\u003e\u003cpath d=\"M353.00158 212.31215l-.18815-.75257L323.84 87.1992v-.56443a31.87872 31.87872 0 0 0-15.8038-18.43771h-.37628l-115.89406-55.5012a27.43753 27.43753 0 0 0-12.79355-2.63394 45.80265 45.80265 0 0 0-11.2884.94064l-.75258.18815-.75249.37628L50.2847 67.44456a28.234 28.234 0 0 0-15.61555 19.19021L6.26 211.55958v.37629a31.70153 31.70153 0 0 0 5.456 23.89372l.18814.18815.18815.18814 79.95943 99.33779.18806.37629.37629.18814a34.82016 34.82016 0 0 0 22.38866 10.15953H243.128c9.97139 0 18.24956-3.95094 23.51743-10.91211l80.14757-99.14964.18814-.18814.18814-.18815a32.69776 32.69776 0 0 0 5.8323-23.51744zm-8.08995 10.15954c0 .04188-.01684.08368-.02094.12557-.00419.04172-.01441.08352-.02086.12515a5.30229 5.30229 0 0 0-.14635.87814v-.00067l-.00008.00067a26.42206 26.42206 0 0 1-3.7628 8.09l-20.31907 25.21065-59.82853 73.93895a19.24954 19.24954 0 0 1-12.79347 7.5256 39.60816 39.60816 0 0 1-4.70352.37628h-127.935a10.72708 10.72708 0 0 1-2.44579-.18814 19.67872 19.67872 0 0 1-3.19837-.75249l.00193.00042-.00193-.00051a29.8032 29.8032 0 0 1-12.041-6.96116l-26.7158-33.11254-10.282-12.78887-42.96155-53.24815a26.87508 26.87508 0 0 1-4.32714-11.10026 11.57224 11.57224 0 0 1-.18815-2.44587 21.45879 21.45879 0 0 1 .37621-4.89158L42.0066 88.32807a20.05066 20.05066 0 0 1 7.14931-11.47655l.04306.08645c.11334-.08905.21763-.188.33315-.27459a17.2548 17.2548 0 0 1 3.95094-2.44579L169.3772 18.34a9.44272 9.44272 0 0 1 2.25765-.37629 47.95077 47.95077 0 0 1 7.33746-.37629 22.76746 22.76746 0 0 1 3.57465.18815 8.01732 8.01732 0 0 1 1.87323.28816c.192.02823.3964.04406.57256.08812a12.1699 12.1699 0 0 1 2.44588.75258q.56444.28221 1.12878.56443l115.89414 55.5012a20.6252 20.6252 0 0 1 3.95094 2.634 19.93238 19.93238 0 0 1 2.25765 1.88136c.02052.02052.03937.04372.05989.06433l.12834-.25248a23.64466 23.64466 0 0 1 5.07972 7.14931c.18815.75258.56444 1.50507.75258 2.25765l28.78539 124.17227c.10421.8856.15506 1.75462.17265 2.61534a25.54405 25.54405 0 0 1-.73717 6.97985l-.00008.00067z\" class=\"cls-3\"/\u003e\u003cpath d=\"M49.344 76.85152c-.04473.0377-.08519.07941-.12967.11736l.04582.092c.0444-.03736.0867-.0764.13144-.11351zM115.38108 338.742c-.75258 0-1.6933-.18814-2.44579-.18814a10.72742 10.72742 0 0 0 2.44579.18814zm-5.64416-.9406a19.67872 19.67872 0 0 0 3.19837.75249 19.70422 19.70422 0 0 1-3.19644-.75207zm235.15377-115.20414c.0041-.04189.02094-.08369.02094-.12557l-.00017.00067c0 .04138-.01667.08285-.02077.12423zm-.16721 1.00262v.00067a5.30229 5.30229 0 0 1 .14635-.87814l-.00017.00067a5.29569 5.29569 0 0 0-.14618.8768z\" class=\"cls-3\"/\u003e\u003cpath d=\"M115.38108 338.742a10.72742 10.72742 0 0 1-2.44579-.18814 10.72708 10.72708 0 0 0 2.44579.18814zM49.344 76.85152l.18815-.18814c-.11552.08661-.21981.18554-.33315.27459l.01533.03091c.04445-.03795.08491-.07966.12967-.11736zm133.203-59.07593c.57641.14408 1.24522.19576 1.87323.28816a8.01732 8.01732 0 0 0-1.87323-.28816z\" class=\"cls-3\"/\u003e\u003cpath d=\"M49.39156 76.94735c.11183-.09281.21478-.19283.3287-.284.28909-.24092.59133-.48117.905-.71572-.36439.23547-.72879.45545-1.09318.71572l-.18815.18814zm4.27965-2.72976L169.3772 18.34 53.48306 74.21759c-.20414.1166-.4082.23983-.61235.35719.26287-.12616.52507-.25391.8005-.35719z\" class=\"cls-3\"/\u003e\u003cpath d=\"M52.87071 74.57478c.20415-.11736.40821-.24059.61235-.35719a17.2548 17.2548 0 0 0-3.95094 2.44579c.36439-.26027.72879-.48025 1.09318-.71572a13.59871 13.59871 0 0 1 2.24541-1.37288z\" class=\"cls-3\"/\u003e\u003cpath d=\"M179.255 338.554l.094.188v-.188h-.094zm-81.37091-7.90191a28.27655 28.27655 0 0 0 11.85283 6.96108 15.93175 15.93175 0 0 0 3.19837.75258 10.72708 10.72708 0 0 0 2.44579.18814h63.87369L148.4937 276.8441l-.18814.37629-.02664-.0542-.16151.24226-28.90618-59.3558-10.03874-20.41541-5.88156-12.00824L49.26012 77.06086a21.01233 21.01233 0 0 0-7.06546 11.26721L13.59742 213.25288a21.45879 21.45879 0 0 0-.37621 4.89158 9.15983 9.15983 0 0 0 .18815 2.25773 25.00431 25.00431 0 0 0 4.32714 11.10017l53.4317 66.22525-29.61294-36.59907 19.14279 23.8102 10.47015 12.977z\" class=\"cls-4\"/\u003e\u003cpath d=\"M71.168 297.728l-53.431-66.226 23.818 29.627 29.613 36.599zM42.19466 88.32807a21.01233 21.01233 0 0 1 7.06546-11.26721l-.04582-.092a20.62117 20.62117 0 0 0-7.01964 11.35921zM17.737 231.691l42.961 53.248-19.143-23.81-23.818-29.438z\" class=\"cls-4\"/\u003e\u003cpath d=\"M49.199 76.938l-.04306-.08645a20.05066 20.05066 0 0 0-7.14934 11.47652L13.59742 213.25288 42.19466 88.32807A19.29686 19.29686 0 0 1 49.199 76.938zM13.40936 220.40219a9.15983 9.15983 0 0 1-.18815-2.25773 11.57224 11.57224 0 0 0 .18815 2.44587 25.15547 25.15547 0 0 0 4.32714 10.912 25.00431 25.00431 0 0 1-4.32714-11.10014z\" class=\"cls-4\"/\u003e\u003cpath d=\"M17.7365 231.50236a25.15547 25.15547 0 0 1-4.32714-10.912 26.87508 26.87508 0 0 0 4.32714 11.10026l23.81876 29.438zM42.19466 88.32807a20.62117 20.62117 0 0 1 7.01964-11.35919l-.0153-.03088a19.29686 19.29686 0 0 0-7.00434 11.39007z\" class=\"cls-4\"/\u003e\u003cpath d=\"M287.529 125.2034l-.94072 2.634-.18814.18815a9.499 9.499 0 0 1-1.19756 1.62092L268.33384 162.94l-3.56979 7.22889-5.64416 11.85275a9.87788 9.87788 0 0 1-1.52082 2.08835L244.93846 209.156a9.70415 9.70415 0 0 1-.49348 1.2747l-3.38652 6.585-9.78324 20.31907a9.87179 9.87179 0 0 1-1.71944 2.299L216.582 265.226c-.05545.17282-.10379.3463-.1698.51786-.18814.18814-.18814.18814-.18814.37629l-6.58488 13.73419a9.87935 9.87935 0 0 1-1.52367 2.09145l-28.57873 56.42h63.77937a39.608 39.608 0 0 0 4.70352-.37629 19.68752 19.68752 0 0 0 12.79347-7.5256l59.82847-73.9389 20.31907-25.21073a24.52526 24.52526 0 0 0 3.7628-8.09c.01048-.02094.00905-.04188.01835-.06282a1.85575 1.85575 0 0 1 .15145-.62684c.01106-.14635.01835-.29278.01835-.43912a24.86724 24.86724 0 0 0 .73708-6.60356c-.02446-.75375-.08067-1.50222-.17273-2.239l-.05529-.2374L316.50244 88.8925a10.60693 10.60693 0 0 0-.75257-2.25773 23.56266 23.56266 0 0 0-5.01984-7.085L288.01761 124.236zm28.97354-36.12284c-.18815-.75249-.56444-1.50507-.75258-2.25765a10.60819 10.60819 0 0 1 .75257 2.25765z\" class=\"cls-5\"/\u003e\u003cpath d=\"M344.86966 222.72308c.00729-.04214.01692-.08436.021-.12649.00209-.02069.001-.04138.00259-.06207a1.85575 1.85575 0 0 0-.15145.62684 1.70441 1.70441 0 0 0 .12786-.43828zM315.75 86.82291c.18814.75258.56443 1.50516.75258 2.25765a10.60819 10.60819 0 0 0-.75258-2.25765zm-86.19422 152.81086c-.05595.05563-.11635.1053-.17348.15942l-12.7933 25.41136-.007.02144zM257.59907 184.11l-.01449.01608-12.52793 24.64731c-.03493.12808-.07773.25524-.11819.38266zm27.60393-54.464l-.006.006-16.767 33.093-.096.195 16.869-33.294z\" class=\"cls-5\"/\u003e\u003cpath d=\"M316.50244 88.8925l28.91825 124.123.05529.2374c.09206.73674.14827 1.48521.17273 2.239-.01759-.86072-.06844-1.72974-.17265-2.61534L316.69067 88.70427c-.18814-.75258-.56443-1.50507-.75258-2.25765a23.64466 23.64466 0 0 0-5.07972-7.14931l-.12834.25248a23.56266 23.56266 0 0 1 5.01984 7.085 10.60693 10.60693 0 0 1 .75257 2.25771zm28.36722 133.83058l.00017-.00067c.00645-.04163.01667-.08343.02086-.12515v-.00067c-.00411.04213-.01369.08435-.02103.12649z\" class=\"cls-5\"/\u003e\u003cpath d=\"M188.75555 165.089l-14.11048 26.5278a9.34134 9.34134 0 1 0 16.55636 8.65438l14.11048-26.52766a9.43369 9.43369 0 0 0-1.61322-11.07278 9.5211 9.5211 0 0 0-14.94314 2.41831z\" class=\"cls-3\"/\u003e\u003cpath d=\"M174.64507 191.6168l14.11048-26.5278a9.5211 9.5211 0 0 1 14.94314-2.41831 9.511 9.511 0 0 0-15.1312 2.23017l-14.11056 26.52774a9.95367 9.95367 0 0 0-.244 8.12848 9.3729 9.3729 0 0 1 .43214-7.94028zm41.76625 73.94577l-.1873.36942c.18471-.18471.18722-.19124.1873-.36942zM209.451 279.478l6.773-13.54605a9.59732 9.59732 0 0 0-4.13909-11.47654 9.29443 9.29443 0 0 0-6.95639-1.019 9.49468 9.49468 0 0 0-5.649 4.40547l-6.773 13.54613a9.40792 9.40792 0 0 0 4.32723 12.60533c.27149.13034.546.24351.82177.34655a9.5626 9.5626 0 0 0 10.65477-3.35678l-.59459 1.17385c.06853-.0681.133-.14081.19979-.21126l.583-1.15082c.18807-.3762.56436-.94064.75251-1.31688z\" class=\"cls-3\"/\u003e\u003cpath d=\"M212.08493 254.45545A9.59732 9.59732 0 0 1 216.224 265.932l.1873-.36942.00084-.00687.17684-.35115a9.36462 9.36462 0 0 0-11.46046-11.76806 9.29443 9.29443 0 0 1 6.95641 1.01895zM197.8555 284.34a9.50054 9.50054 0 0 0 10.06018-2.18293l.59459-1.17385A9.5626 9.5626 0 0 1 197.8555 284.34z\" class=\"cls-3\"/\u003e\u003cpath d=\"M216.224 266.12014c0-.18815 0-.18815.18814-.37629.066-.17156.11435-.345.1698-.51786l-.17064.33658c-.00008.17818-.00259.18471-.1873.36942l-6.773 13.54601c-.18814.3762-.56443.94064-.75257 1.31692l-.583 1.15082a9.87935 9.87935 0 0 0 1.52367-2.09145z\" class=\"cls-3\"/\u003e\u003cpath d=\"M216.41132 265.56257l.17064-.33658.007-.02144-.17684.35115zM148.4937 276.656l10.53582-19.56658 13.7342-25.77508a9.43315 9.43315 0 0 0 .87915-6.29454c-.03762-.18228-.08779-.361-.136-.54056-.01625-.057-.02807-.11484-.04541-.17155a9.48444 9.48444 0 0 0-17.44212-1.64782l-7.5256 14.29863L95.4383 124.26277h33.677l30.85489 57.19449.37629-.18814 10.34768-19.37844-30.377-56.25377H64.207l45.1536 92.18848 9.8506 20.22726 29.06769 59.11354.21478-.32209.04867-.09047z\" class=\"cls-3\"/\u003e\u003cpath d=\"M101.821 182.627l1.47 3.002 6.07 12.196-7.54-15.198zm70.94272 48.6873l-13.7342 25.77508L148.4937 276.656l.04867.09767 10.48715-19.4761 13.7342-25.77509a9.317 9.317 0 0 0 .87915-6.48268 9.43315 9.43315 0 0 1-.87915 6.2945z\" class=\"cls-3\"/\u003e\u003cpath fill=\"none\" stroke=\"#fff\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"0\" d=\"M173.46142 224.30765c.01734.05671.02916.11459.04541.17155\"/\u003e\u003cpath d=\"M64.207 105.637h76.11l-.101-.188H64.019l37.802 77.178 7.54 15.198-45.154-92.188zm39.084 79.992l5.881 12.008 10.039 20.416-9.85-20.228-6.07-12.196zm45.015 91.591l.188-.376-.215.322.027.054zm137.70644-149.17684l.19954-.39388 1.50515-2.82216.30048-.59116 8.91834-17.65833h-.16729l-9.4279 18.62577 9.407-18.62577h-39.13303a9.407 9.407 0 0 0 0 18.81392h11.2884a9.46073 9.46073 0 0 0 11.07094 7.18625 9.65911 9.65911 0 0 0 6.03837-4.53464z\" class=\"cls-3\"/\u003e\u003cpath d=\"M296.769 106.578h-.021l-9.407 18.625 9.428-18.625zm-16.79493 25.9998c.07255-.01441.14492-.02077.21746-.03694a9.52346 9.52346 0 0 0 5.00593-2.88926l.815-1.60844a9.65911 9.65911 0 0 1-6.03839 4.53464zm6.23793-4.92852l-.19954.39388.0114-.01759-.82127 1.62092a9.499 9.499 0 0 0 1.19756-1.62092l.18814-.18815.94072-2.634.48862-.96744-.30048.59116z\" class=\"cls-3\"/\u003e\u003cpath d=\"M286.02384 128.02557l-.0114.01759-.815 1.60844.00511-.00511zM258.17 182.97423l.19727-.38819a4.11213 4.11213 0 0 0 .56443-.94072l5.6442-11.28832 7.5256-15.23935a9.4245 9.4245 0 0 0-14.38256-11.52077 8.93718 8.93718 0 0 0-2.17371 2.86631v.18814l-13.358 26.904a9.408 9.408 0 0 0 4.32723 12.60533 9.61806 9.61806 0 0 0 3.30123.90763 9.47039 9.47039 0 0 0 8.35431-4.09406z\" class=\"cls-3\"/\u003e\u003cpath d=\"M267.96241 142.51234a9.18239 9.18239 0 0 1 4.13909 12.60532l-7.5256 15.23934.18815-.37629 3.66629-7.23618 3.85931-7.815a9.1824 9.1824 0 0 0-4.13909-12.60533 9.54993 9.54993 0 0 0-10.43162 1.2727 9.21467 9.21467 0 0 1 10.24347-1.08456zm-18.1467 44.55599a9.52394 9.52394 0 0 0 7.76887-2.94229l.58546-1.15181a9.47039 9.47039 0 0 1-8.35433 4.0941z\" class=\"cls-3\"/\u003e\u003cpath d=\"M258.93174 181.64532a4.11213 4.11213 0 0 1-.56443.94072l-.19727.38819.00913-.0119-.5801 1.14763a9.87788 9.87788 0 0 0 1.52082-2.08835l5.64416-11.85275 3.56979-7.22889-3.75794 7.417z\" class=\"cls-3\"/\u003e\u003cpath d=\"M264.576 170.357l3.758-7.417.096-.195-3.666 7.236-.188.376zm-6.39683 12.60533l-.00913.0119-.58546 1.15181.01449-.01608zm-28.47436 56.19011l.44154-.877c.18815-.37629.56444-.94072.75258-1.317l10.15953-20.31907 3.80151-7.47911a9.49138 9.49138 0 0 0-10.85842-12.0388 9.3473 9.3473 0 0 0-6.301 4.843l-13.358 26.90394a9.4298 9.4298 0 0 0 12.37152 12.72311 9.11894 9.11894 0 0 0 2.99074-2.43907z\" class=\"cls-3\"/\u003e\u003cpath d=\"M226.7141 241.59153a9.61839 9.61839 0 0 0 2.6682-1.79834l.32251-.64075a9.11894 9.11894 0 0 1-2.99071 2.43909zm13.40364-43.578a9.24534 9.24534 0 0 1 4.74226 11.14675l.19668-.38693a9.25737 9.25737 0 0 0-11.0551-11.65187 9.302 9.302 0 0 1 6.11616.89205z\" class=\"cls-3\"/\u003e\u003cpath d=\"M244.25683 210.61894l-3.38651 6.58488 3.82906-7.57494c.06015-.15556.10924-.31212.16059-.4686l-3.80151 7.47911-10.15953 20.31907c-.18814.37629-.56443.94072-.75258 1.317l-.44154.877c.08377-.10505.17373-.20306.2534-.31254l-.40243.79387a9.87179 9.87179 0 0 0 1.71944-2.299l9.78324-20.31907 3.38652-6.585a9.70415 9.70415 0 0 0 .49348-1.2747l-.23908.47287a9.76715 9.76715 0 0 1-.44255.99005z\" class=\"cls-3\"/\u003e\u003cpath d=\"M244.69938 209.62888l.23908-.47287c.04046-.12742.08326-.25458.11819-.38266l-.19668.38693c-.05135.15648-.10044.31304-.16059.4686zm-14.74117 29.21102c-.07967.10948-.16963.20749-.2534.31254l-.32251.64075c.05713-.05412.11753-.10379.17348-.15942zm14.29862-28.22096a9.76715 9.76715 0 0 0 .44255-.99006l-3.82906 7.57494zm-36.68728-61.14552a9.22039 9.22039 0 0 0 2.60462.9403 9.57056 9.57056 0 0 0 10.00079-4.89116l14.11048-26.52775a9.42567 9.42567 0 0 0-3.95094-12.79347 8.73961 8.73961 0 0 0-4.32724-1.12886H220.175L203.61861 136.68a9.76617 9.76617 0 0 0 3.95094 12.79342z\" class=\"cls-3\"/\u003e\u003cpath d=\"M210.17417 150.41372a9.24039 9.24039 0 0 0 10.00079-4.89116 9.57056 9.57056 0 0 1-10.00079 4.89116z\" class=\"cls-3\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"6.10 10.85 345.80 334.30\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff}\u003c/style\u003e\u003c/defs\u003e\u003cpath d=\"M115.09287 338.742l-1.852-.07941a14.868 14.868 0 0 0 1.852.07941z\" class=\"cls-1\"/\u003e\u003cpath d=\"M345.18784 212.87648L316.40244 88.7043c-.18817-.75263-.56445-1.50513-.75256-2.25769a23.64542 23.64542 0 0 0-5.07978-7.14929l-.12829.2525c-.02051-.02063-.03937-.04382-.05988-.06439a19.93834 19.93834 0 0 0-2.25769-1.88135 20.626 20.626 0 0 0-3.95092-2.634L188.27915 19.46889q-.56424-.28227-1.12878-.56446a12.17166 12.17166 0 0 0-2.44587-.75256c-.17614-.04407-.38055-.05988-.57257-.08814-.628-.0924-1.29681-.144-1.87323-.28814a22.76456 22.76456 0 0 0-3.57464-.18817 47.94466 47.94466 0 0 0-7.33747.37634 9.44163 9.44163 0 0 0-2.25759.37624L53.383 74.2176c-.27545.10328-.5376.231-.80047.35718a13.604 13.604 0 0 0-2.24543 1.37287c-.31372.23455-.616.47479-.905.71576-.114.09112-.21692.1911-.32873.28393-.04474.03711-.087.07617-.13141.11353l-.04584-.092-.01532-.031-.04309-.08642a20.05086 20.05086 0 0 0-7.14929 11.47656L13.30918 213.25288a21.45849 21.45849 0 0 0-.37622 4.8916 11.57114 11.57114 0 0 0 .18817 2.44587 26.87493 26.87493 0 0 0 4.32715 11.10022l42.96155 53.24816 10.282 12.78888 26.71586 33.11249a29.80244 29.80244 0 0 0 12.041 6.96118l.00189.00049a19.69944 19.69944 0 0 0 3.19647.75208c.7525 0 1.69318.18817 2.4458.18817h127.93496a39.614 39.614 0 0 0 4.70349-.37628 19.24937 19.24937 0 0 0 12.79346-7.52564l59.82855-73.9389 20.319-25.21063a26.421 26.421 0 0 0 3.76282-8.09l.00012-.00067a3.98126 3.98126 0 0 1 .12451-.77362c.007-.0343.01569-.06861.02161-.10291l.00006-.00024.00012-.00067c.00647-.04163.01666-.08344.02087-.12519v-.00067c.00409-.04138.02076-.08282.02076-.1242l.00012-.00068a25.54436 25.54436 0 0 0 .73712-6.97985c-.01755-.86075-.06842-1.72977-.17258-2.61539zm-87.877-28.76654l-.01447.01611a9.5482 9.5482 0 0 1-11.07013 2.03467 9.408 9.408 0 0 1-4.32721-12.60535l13.358-26.90405v-.18811a8.937 8.937 0 0 1 2.17371-2.86633 9.55005 9.55005 0 0 1 10.43164-1.27271 9.18249 9.18249 0 0 1 4.1391 12.60535l-3.85931 7.815-.0965.19544-3.56982 7.22888-5.64417 11.85278a9.87529 9.87529 0 0 1-1.52085 2.08832zm-13.15412 26.3208l-3.38647 6.585-9.78326 20.319a9.87121 9.87121 0 0 1-1.71943 2.29907c-.056.05561-.11633.10529-.17346.15937a9.61743 9.61743 0 0 1-2.66821 1.79834 9.42977 9.42977 0 0 1-12.37152-12.72309l13.358-26.90393a9.56395 9.56395 0 0 1 12.60535-4.1391 9.45293 9.45293 0 0 1 4.75073 10.94794c-.03491.12811-.0777.25525-.11817.38269a9.69652 9.69652 0 0 1-.49357 1.27471zM207.62748 282.157a9.50065 9.50065 0 0 1-10.06024 2.183c-.27576-.10309-.55024-.21625-.82172-.34656a9.408 9.408 0 0 1-4.32727-12.60534l6.773-13.54615a9.49475 9.49475 0 0 1 5.649-4.40545 9.36464 9.36464 0 0 1 11.46045 11.76806l-.007.02143c-.05548.17285-.10382.34631-.1698.51788-.18817.18811-.18817.18811-.18817.37628l-6.58484 13.73419a9.87977 9.87977 0 0 1-1.52368 2.09143c-.06674.07042-.13121.14317-.19973.21123zm2.25852-131.74329a9.21794 9.21794 0 0 1-2.60461-.94031 9.76615 9.76615 0 0 1-3.951-12.79345l16.5564-31.60749h5.83221a8.73886 8.73886 0 0 1 4.32721 1.12891 9.4256 9.4256 0 0 1 3.951 12.79346l-14.11047 26.52771a9.24039 9.24039 0 0 1-10.00074 4.89117zm77.3548-25.21033l-.94074 2.634-.18811.18817a9.4997 9.4997 0 0 1-1.19757 1.62091l-.00512.00513a9.52354 9.52354 0 0 1-5.00592 2.88922c-.07251.01617-.1449.02252-.21747.03692a9.46066 9.46066 0 0 1-11.07093-7.18622h-11.28843a9.407 9.407 0 1 1 0-18.8139h39.32123l-8.91833 17.65839zm-98.96149 39.69751a9.46795 9.46795 0 1 1 16.74439 8.84265l-14.11048 26.52765a9.3656 9.3656 0 0 1-16.98852-.714 9.95378 9.95378 0 0 1 .244-8.12848zm-86.74688 17.72626l-37.8018-77.17841h76.19665l.10163.18818 30.377 56.25378-10.34771 19.37842-.37628.18817-30.85486-57.19452h-33.677l53.05542 112.69568 7.52557-14.29865a9.48448 9.48448 0 0 1 17.44214 1.64783c.01734.0567.02918.11463.04541.17157.04822.17951.09839.35828.136.54059a9.317 9.317 0 0 1-.87915 6.48267l-13.73419 25.77508-10.48718 19.47608-.04865.09045-.18817.37628-.02661-.0542-29.06765-59.11352-10.03876-20.41541-5.88152-12.00822z\" class=\"cls-1\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kubevirt/v0.21.1/v1.0.0/model.json b/server/meshmodel/kubevirt/v0.21.1/v1.0.0/model.json new file mode 100644 index 00000000000..5091d78bf6b --- /dev/null +++ b/server/meshmodel/kubevirt/v0.21.1/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "App Definition and Development" + }, + "displayName": "Kubevirt", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#00aab2", + "secondaryColor": "#45EFF7", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-1.20 3.05 361.40 349.90\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none}.cls-2{fill:#00aab2}.cls-3{fill:#fff}.cls-4{fill:#00797f}.cls-5{fill:#3accc5}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M192.7065 271.38809l6.773-13.54613a9.49468 9.49468 0 0 1 5.649-4.40547 9.348 9.348 0 0 0-5.83716 4.40547l-6.773 13.54613A9.23964 9.23964 0 0 0 197.8555 284.34c-.27577-.103-.55028-.21621-.82177-.34655a9.40792 9.40792 0 0 1-4.32723-12.60536zm25.96331-29.91426a9.40808 9.40808 0 0 1-4.32723-12.60541l13.358-26.90394a9.3473 9.3473 0 0 1 6.301-4.843 9.12 9.12 0 0 0-6.48913 5.03114l-13.54613 26.904a9.43238 9.43238 0 0 0 12.74781 12.53488 9.4831 9.4831 0 0 1-8.04432-.11767zM187.25048 18.90445q.56443.28221 1.12878.56443l115.89414 55.5012c1.317.75258 2.63394 1.6933 3.951 2.634a19.91834 19.91834 0 0 1 2.25765 1.88136l-13.71334 27.09217h.16729l-8.91839 17.65839L310.73 79.54979c-.02052-.02061-.03937-.04381-.05989-.06433a19.93238 19.93238 0 0 0-2.25765-1.88136 20.6252 20.6252 0 0 0-3.95094-2.634L188.56741 19.46888q-.56431-.28221-1.12878-.56443a12.1699 12.1699 0 0 0-2.44588-.75258c-.17616-.04406-.38056-.05989-.57256-.08812.12817.03108.25634.05612.38442.08812a9.31469 9.31469 0 0 1 2.44587.75258zm-8.27817-1.31701a47.95077 47.95077 0 0 0-7.33746.37629 9.44272 9.44272 0 0 0-2.25765.37629c.94064-.18815 1.69322-.18815 2.44579-.37629a45.53642 45.53642 0 0 1 7.14932-.37629zm28.4091 131.88598a9.52851 9.52851 0 0 0 2.79276.9403 9.22039 9.22039 0 0 1-2.60462-.9403 9.76617 9.76617 0 0 1-3.95094-12.79342 9.474 9.474 0 0 0 3.7628 12.79342zm61.52172-24.08187h-.18813a9.56425 9.56425 0 0 0 4.51529 6.20867 9.03611 9.03611 0 0 0 6.74379.97758 9.46073 9.46073 0 0 1-11.07095-7.18625zm-34.61769-6.39674L220.175 145.52256l14.29863-26.52775a9.53885 9.53885 0 0 0-3.951-12.79347 8.73982 8.73982 0 0 0-4.32723-1.12886h-.18815a8.73961 8.73961 0 0 1 4.32724 1.12886 9.42567 9.42567 0 0 1 3.95095 12.79347zM49.39156 76.94735c-.04474.03711-.087.07615-.13144.11351L103.29093 185.629l-1.47031-3.00185zM148.117 277.408l.162-.242-29.068-59.113 28.906 59.355zm100.09078-161.42341a9.31556 9.31556 0 0 1 9.40695-9.407h-.18814a9.407 9.407 0 1 0 0 18.81392h.18814a9.31561 9.31561 0 0 1-9.40695-9.40692zm-42.89587 57.75893l-14.11048 26.52766a9.36557 9.36557 0 0 1-16.98852-.714 9.3451 9.3451 0 0 0 4.38311 4.85314 9.53881 9.53881 0 0 0 12.79355-3.951L205.5 173.93166a9.40166 9.40166 0 0 0-1.80136-11.26092 9.43369 9.43369 0 0 1 1.61327 11.07278zm-49.29261 48.91631a9.48444 9.48444 0 0 1 17.44212 1.64782 9.43241 9.43241 0 0 0-17.44212-1.836l-7.5256 14.29862-53.0554-112.5075 53.0554 112.69569zM148.494 276.844l30.761 61.71h.094l-30.807-61.8-.048.09zm11.852-95.575l10.536-19.378-30.478-56.254h-.087l30.377 56.254-10.348 19.378zm81.84125-7.71363l13.358-26.904v-.18814a8.93718 8.93718 0 0 1 2.17371-2.86631 9.18734 9.18734 0 0 0-2.36185 3.05445l-13.358 26.904a9.26028 9.26028 0 0 0 3.19837 11.85284 8.77683 8.77683 0 0 0 4.61824 1.66012 9.61806 9.61806 0 0 1-3.30123-.90763 9.408 9.408 0 0 1-4.32724-12.60533z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M344.74183 223.16136c-.0093.02094-.00787.04188-.01835.06282a24.52526 24.52526 0 0 1-3.7628 8.09L320.64161 256.525l-59.82851 73.93886a19.68752 19.68752 0 0 1-12.79347 7.5256 39.608 39.608 0 0 1-4.70352.37629h-63.77937l28.57873-56.42c-.06676.07045-.13126.14316-.19979.21126l-28.56709 56.39685v.18814H243.316a39.60816 39.60816 0 0 0 4.70352-.37628 19.24954 19.24954 0 0 0 12.79347-7.5256l59.82851-73.93891 20.31907-25.21065a26.42206 26.42206 0 0 0 3.7628-8.09l.00008-.00067a5.29569 5.29569 0 0 1 .14618-.8768 1.70441 1.70441 0 0 1-.1278.43827zm.90688-7.66952a24.86724 24.86724 0 0 1-.73708 6.60356c0 .14634-.00729.29277-.01835.43912-.00159.02069-.0005.04138-.00259.06207.0041-.04138.02077-.08285.02077-.12423l.00008-.00067a25.54405 25.54405 0 0 0 .73717-6.97985z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M115.38108 338.55389a10.72708 10.72708 0 0 1-2.44579-.18814 15.93175 15.93175 0 0 1-3.19837-.75258 28.27655 28.27655 0 0 1-11.85283-6.96108L71.1682 297.91575l-10.47015-12.977 10.282 12.78887 26.71589 33.11254a29.8032 29.8032 0 0 0 12.041 6.96116l.00193.00051a19.70422 19.70422 0 0 0 3.19644.75207c.75249 0 1.69321.18814 2.44579.18814h63.96751l-.09382-.18814z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M52.87071 74.57478q-1.12257.64534-2.24541 1.37288c-.31371.23455-.616.4748-.905.71572-.11392.09114-.21687.19116-.3287.284l52.42906 105.67982-37.80173-77.1784h76.19663l.10162.18814h.08653l30.4786 56.25377-10.53582 19.37844-.37629.18814-30.85489-57.19449H95.4383l53.0554 112.50754 7.5256-14.29862a9.43241 9.43241 0 0 1 17.44212 1.836c.01734.05671.02916.11459.04541.17155.04825.17952.09842.35828.136.54056a9.317 9.317 0 0 1-.87915 6.48268l-13.7342 25.77509-10.48715 19.4761 30.80622 61.80026 28.56713-56.39696a9.50054 9.50054 0 0 1-10.06018 2.183 9.23964 9.23964 0 0 1-5.33715-12.95188l6.773-13.54613a9.348 9.348 0 0 1 5.83716-4.40547 9.36462 9.36462 0 0 1 11.46049 11.76803l12.7933-25.41136a9.61839 9.61839 0 0 1-2.6682 1.79834 9.43238 9.43238 0 0 1-12.74781-12.53488l13.54613-26.904a9.12 9.12 0 0 1 6.48913-5.03114 9.25737 9.25737 0 0 1 11.0551 11.65187l12.52793-24.64738a9.52394 9.52394 0 0 1-7.76887 2.94229 8.77683 8.77683 0 0 1-4.61824-1.66012 9.26028 9.26028 0 0 1-3.19837-11.85284l13.358-26.904a9.18734 9.18734 0 0 1 2.36185-3.05445 9.54993 9.54993 0 0 1 10.43162-1.2727 9.1824 9.1824 0 0 1 4.13909 12.60533l-3.85931 7.815 16.76712-33.09294a9.52346 9.52346 0 0 1-5.00593 2.88926c-.07254.01617-.14491.02253-.21746.03694a9.03611 9.03611 0 0 1-6.74379-.97758 9.56425 9.56425 0 0 1-4.51529-6.20867h-11.2884a9.407 9.407 0 1 1 0-18.81392h39.34207L310.482 79.48546a19.91834 19.91834 0 0 0-2.25765-1.88136c-1.317-.94072-2.63394-1.88144-3.951-2.634L188.37926 19.46888q-.5643-.28221-1.12878-.56443c-.75257-.18814-1.50515-.56443-2.44587-.75258-.12808-.032-.25625-.057-.38442-.08812-.628-.0924-1.29682-.14408-1.87323-.28816a22.76746 22.76746 0 0 0-3.57465-.18815 45.53642 45.53642 0 0 0-7.14932.37629c-.75257.18814-1.50515.18814-2.44579.37629L53.67121 74.21759c-.27543.10328-.53763.23103-.8005.35719zM203.61861 136.68l16.55639-31.60752h6.02045a8.73982 8.73982 0 0 1 4.32723 1.12886 9.53885 9.53885 0 0 1 3.951 12.79347L220.175 145.52256a9.24039 9.24039 0 0 1-10.00079 4.89116 9.28868 9.28868 0 0 1-6.5556-13.73372zm-29.16168 54.7487l14.11056-26.52774a9.59585 9.59585 0 0 1 16.93251 9.0307l-14.11048 26.52766a9.53881 9.53881 0 0 1-12.79355 3.951 9.3451 9.3451 0 0 1-4.38311-4.85314 9.95367 9.95367 0 0 1 .24407-8.12853z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M187.25048 18.90445a9.31469 9.31469 0 0 0-2.44587-.75258 12.16962 12.16962 0 0 1 2.44587.75258z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M187.25048 18.90445a12.16962 12.16962 0 0 0-2.44587-.75258c.94072.18813 1.6933.56444 2.44587.75258zM50.6253 75.94766q1.1227-.7254 2.24541-1.37288a13.59871 13.59871 0 0 0-2.24541 1.37288z\" class=\"cls-2\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M353.00158 212.31215l-.18815-.75257L323.84 87.1992v-.56443a31.87872 31.87872 0 0 0-15.8038-18.43771h-.37628l-115.89406-55.5012a27.43753 27.43753 0 0 0-12.79355-2.63394 45.80265 45.80265 0 0 0-11.2884.94064l-.75258.18815-.75249.37628L50.2847 67.44456a28.234 28.234 0 0 0-15.61555 19.19021L6.26 211.55958v.37629a31.70153 31.70153 0 0 0 5.456 23.89372l.18814.18815.18815.18814 79.95943 99.33779.18806.37629.37629.18814a34.82016 34.82016 0 0 0 22.38866 10.15953H243.128c9.97139 0 18.24956-3.95094 23.51743-10.91211l80.14757-99.14964.18814-.18814.18814-.18815a32.69776 32.69776 0 0 0 5.8323-23.51744zm-8.08995 10.15954c0 .04188-.01684.08368-.02094.12557-.00419.04172-.01441.08352-.02086.12515a5.30229 5.30229 0 0 0-.14635.87814v-.00067l-.00008.00067a26.42206 26.42206 0 0 1-3.7628 8.09l-20.31907 25.21065-59.82853 73.93895a19.24954 19.24954 0 0 1-12.79347 7.5256 39.60816 39.60816 0 0 1-4.70352.37628h-127.935a10.72708 10.72708 0 0 1-2.44579-.18814 19.67872 19.67872 0 0 1-3.19837-.75249l.00193.00042-.00193-.00051a29.8032 29.8032 0 0 1-12.041-6.96116l-26.7158-33.11254-10.282-12.78887-42.96155-53.24815a26.87508 26.87508 0 0 1-4.32714-11.10026 11.57224 11.57224 0 0 1-.18815-2.44587 21.45879 21.45879 0 0 1 .37621-4.89158L42.0066 88.32807a20.05066 20.05066 0 0 1 7.14931-11.47655l.04306.08645c.11334-.08905.21763-.188.33315-.27459a17.2548 17.2548 0 0 1 3.95094-2.44579L169.3772 18.34a9.44272 9.44272 0 0 1 2.25765-.37629 47.95077 47.95077 0 0 1 7.33746-.37629 22.76746 22.76746 0 0 1 3.57465.18815 8.01732 8.01732 0 0 1 1.87323.28816c.192.02823.3964.04406.57256.08812a12.1699 12.1699 0 0 1 2.44588.75258q.56444.28221 1.12878.56443l115.89414 55.5012a20.6252 20.6252 0 0 1 3.95094 2.634 19.93238 19.93238 0 0 1 2.25765 1.88136c.02052.02052.03937.04372.05989.06433l.12834-.25248a23.64466 23.64466 0 0 1 5.07972 7.14931c.18815.75258.56444 1.50507.75258 2.25765l28.78539 124.17227c.10421.8856.15506 1.75462.17265 2.61534a25.54405 25.54405 0 0 1-.73717 6.97985l-.00008.00067z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M49.344 76.85152c-.04473.0377-.08519.07941-.12967.11736l.04582.092c.0444-.03736.0867-.0764.13144-.11351zM115.38108 338.742c-.75258 0-1.6933-.18814-2.44579-.18814a10.72742 10.72742 0 0 0 2.44579.18814zm-5.64416-.9406a19.67872 19.67872 0 0 0 3.19837.75249 19.70422 19.70422 0 0 1-3.19644-.75207zm235.15377-115.20414c.0041-.04189.02094-.08369.02094-.12557l-.00017.00067c0 .04138-.01667.08285-.02077.12423zm-.16721 1.00262v.00067a5.30229 5.30229 0 0 1 .14635-.87814l-.00017.00067a5.29569 5.29569 0 0 0-.14618.8768z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M115.38108 338.742a10.72742 10.72742 0 0 1-2.44579-.18814 10.72708 10.72708 0 0 0 2.44579.18814zM49.344 76.85152l.18815-.18814c-.11552.08661-.21981.18554-.33315.27459l.01533.03091c.04445-.03795.08491-.07966.12967-.11736zm133.203-59.07593c.57641.14408 1.24522.19576 1.87323.28816a8.01732 8.01732 0 0 0-1.87323-.28816z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M49.39156 76.94735c.11183-.09281.21478-.19283.3287-.284.28909-.24092.59133-.48117.905-.71572-.36439.23547-.72879.45545-1.09318.71572l-.18815.18814zm4.27965-2.72976L169.3772 18.34 53.48306 74.21759c-.20414.1166-.4082.23983-.61235.35719.26287-.12616.52507-.25391.8005-.35719z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M52.87071 74.57478c.20415-.11736.40821-.24059.61235-.35719a17.2548 17.2548 0 0 0-3.95094 2.44579c.36439-.26027.72879-.48025 1.09318-.71572a13.59871 13.59871 0 0 1 2.24541-1.37288z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M179.255 338.554l.094.188v-.188h-.094zm-81.37091-7.90191a28.27655 28.27655 0 0 0 11.85283 6.96108 15.93175 15.93175 0 0 0 3.19837.75258 10.72708 10.72708 0 0 0 2.44579.18814h63.87369L148.4937 276.8441l-.18814.37629-.02664-.0542-.16151.24226-28.90618-59.3558-10.03874-20.41541-5.88156-12.00824L49.26012 77.06086a21.01233 21.01233 0 0 0-7.06546 11.26721L13.59742 213.25288a21.45879 21.45879 0 0 0-.37621 4.89158 9.15983 9.15983 0 0 0 .18815 2.25773 25.00431 25.00431 0 0 0 4.32714 11.10017l53.4317 66.22525-29.61294-36.59907 19.14279 23.8102 10.47015 12.977z\" class=\"cls-4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M71.168 297.728l-53.431-66.226 23.818 29.627 29.613 36.599zM42.19466 88.32807a21.01233 21.01233 0 0 1 7.06546-11.26721l-.04582-.092a20.62117 20.62117 0 0 0-7.01964 11.35921zM17.737 231.691l42.961 53.248-19.143-23.81-23.818-29.438z\" class=\"cls-4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M49.199 76.938l-.04306-.08645a20.05066 20.05066 0 0 0-7.14934 11.47652L13.59742 213.25288 42.19466 88.32807A19.29686 19.29686 0 0 1 49.199 76.938zM13.40936 220.40219a9.15983 9.15983 0 0 1-.18815-2.25773 11.57224 11.57224 0 0 0 .18815 2.44587 25.15547 25.15547 0 0 0 4.32714 10.912 25.00431 25.00431 0 0 1-4.32714-11.10014z\" class=\"cls-4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M17.7365 231.50236a25.15547 25.15547 0 0 1-4.32714-10.912 26.87508 26.87508 0 0 0 4.32714 11.10026l23.81876 29.438zM42.19466 88.32807a20.62117 20.62117 0 0 1 7.01964-11.35919l-.0153-.03088a19.29686 19.29686 0 0 0-7.00434 11.39007z\" class=\"cls-4\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M287.529 125.2034l-.94072 2.634-.18814.18815a9.499 9.499 0 0 1-1.19756 1.62092L268.33384 162.94l-3.56979 7.22889-5.64416 11.85275a9.87788 9.87788 0 0 1-1.52082 2.08835L244.93846 209.156a9.70415 9.70415 0 0 1-.49348 1.2747l-3.38652 6.585-9.78324 20.31907a9.87179 9.87179 0 0 1-1.71944 2.299L216.582 265.226c-.05545.17282-.10379.3463-.1698.51786-.18814.18814-.18814.18814-.18814.37629l-6.58488 13.73419a9.87935 9.87935 0 0 1-1.52367 2.09145l-28.57873 56.42h63.77937a39.608 39.608 0 0 0 4.70352-.37629 19.68752 19.68752 0 0 0 12.79347-7.5256l59.82847-73.9389 20.31907-25.21073a24.52526 24.52526 0 0 0 3.7628-8.09c.01048-.02094.00905-.04188.01835-.06282a1.85575 1.85575 0 0 1 .15145-.62684c.01106-.14635.01835-.29278.01835-.43912a24.86724 24.86724 0 0 0 .73708-6.60356c-.02446-.75375-.08067-1.50222-.17273-2.239l-.05529-.2374L316.50244 88.8925a10.60693 10.60693 0 0 0-.75257-2.25773 23.56266 23.56266 0 0 0-5.01984-7.085L288.01761 124.236zm28.97354-36.12284c-.18815-.75249-.56444-1.50507-.75258-2.25765a10.60819 10.60819 0 0 1 .75257 2.25765z\" class=\"cls-5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M344.86966 222.72308c.00729-.04214.01692-.08436.021-.12649.00209-.02069.001-.04138.00259-.06207a1.85575 1.85575 0 0 0-.15145.62684 1.70441 1.70441 0 0 0 .12786-.43828zM315.75 86.82291c.18814.75258.56443 1.50516.75258 2.25765a10.60819 10.60819 0 0 0-.75258-2.25765zm-86.19422 152.81086c-.05595.05563-.11635.1053-.17348.15942l-12.7933 25.41136-.007.02144zM257.59907 184.11l-.01449.01608-12.52793 24.64731c-.03493.12808-.07773.25524-.11819.38266zm27.60393-54.464l-.006.006-16.767 33.093-.096.195 16.869-33.294z\" class=\"cls-5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M316.50244 88.8925l28.91825 124.123.05529.2374c.09206.73674.14827 1.48521.17273 2.239-.01759-.86072-.06844-1.72974-.17265-2.61534L316.69067 88.70427c-.18814-.75258-.56443-1.50507-.75258-2.25765a23.64466 23.64466 0 0 0-5.07972-7.14931l-.12834.25248a23.56266 23.56266 0 0 1 5.01984 7.085 10.60693 10.60693 0 0 1 .75257 2.25771zm28.36722 133.83058l.00017-.00067c.00645-.04163.01667-.08343.02086-.12515v-.00067c-.00411.04213-.01369.08435-.02103.12649z\" class=\"cls-5\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M188.75555 165.089l-14.11048 26.5278a9.34134 9.34134 0 1 0 16.55636 8.65438l14.11048-26.52766a9.43369 9.43369 0 0 0-1.61322-11.07278 9.5211 9.5211 0 0 0-14.94314 2.41831z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M174.64507 191.6168l14.11048-26.5278a9.5211 9.5211 0 0 1 14.94314-2.41831 9.511 9.511 0 0 0-15.1312 2.23017l-14.11056 26.52774a9.95367 9.95367 0 0 0-.244 8.12848 9.3729 9.3729 0 0 1 .43214-7.94028zm41.76625 73.94577l-.1873.36942c.18471-.18471.18722-.19124.1873-.36942zM209.451 279.478l6.773-13.54605a9.59732 9.59732 0 0 0-4.13909-11.47654 9.29443 9.29443 0 0 0-6.95639-1.019 9.49468 9.49468 0 0 0-5.649 4.40547l-6.773 13.54613a9.40792 9.40792 0 0 0 4.32723 12.60533c.27149.13034.546.24351.82177.34655a9.5626 9.5626 0 0 0 10.65477-3.35678l-.59459 1.17385c.06853-.0681.133-.14081.19979-.21126l.583-1.15082c.18807-.3762.56436-.94064.75251-1.31688z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M212.08493 254.45545A9.59732 9.59732 0 0 1 216.224 265.932l.1873-.36942.00084-.00687.17684-.35115a9.36462 9.36462 0 0 0-11.46046-11.76806 9.29443 9.29443 0 0 1 6.95641 1.01895zM197.8555 284.34a9.50054 9.50054 0 0 0 10.06018-2.18293l.59459-1.17385A9.5626 9.5626 0 0 1 197.8555 284.34z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M216.224 266.12014c0-.18815 0-.18815.18814-.37629.066-.17156.11435-.345.1698-.51786l-.17064.33658c-.00008.17818-.00259.18471-.1873.36942l-6.773 13.54601c-.18814.3762-.56443.94064-.75257 1.31692l-.583 1.15082a9.87935 9.87935 0 0 0 1.52367-2.09145z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M216.41132 265.56257l.17064-.33658.007-.02144-.17684.35115zM148.4937 276.656l10.53582-19.56658 13.7342-25.77508a9.43315 9.43315 0 0 0 .87915-6.29454c-.03762-.18228-.08779-.361-.136-.54056-.01625-.057-.02807-.11484-.04541-.17155a9.48444 9.48444 0 0 0-17.44212-1.64782l-7.5256 14.29863L95.4383 124.26277h33.677l30.85489 57.19449.37629-.18814 10.34768-19.37844-30.377-56.25377H64.207l45.1536 92.18848 9.8506 20.22726 29.06769 59.11354.21478-.32209.04867-.09047z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M101.821 182.627l1.47 3.002 6.07 12.196-7.54-15.198zm70.94272 48.6873l-13.7342 25.77508L148.4937 276.656l.04867.09767 10.48715-19.4761 13.7342-25.77509a9.317 9.317 0 0 0 .87915-6.48268 9.43315 9.43315 0 0 1-.87915 6.2945z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"#fff\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"0\" d=\"M173.46142 224.30765c.01734.05671.02916.11459.04541.17155\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M64.207 105.637h76.11l-.101-.188H64.019l37.802 77.178 7.54 15.198-45.154-92.188zm39.084 79.992l5.881 12.008 10.039 20.416-9.85-20.228-6.07-12.196zm45.015 91.591l.188-.376-.215.322.027.054zm137.70644-149.17684l.19954-.39388 1.50515-2.82216.30048-.59116 8.91834-17.65833h-.16729l-9.4279 18.62577 9.407-18.62577h-39.13303a9.407 9.407 0 0 0 0 18.81392h11.2884a9.46073 9.46073 0 0 0 11.07094 7.18625 9.65911 9.65911 0 0 0 6.03837-4.53464z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M296.769 106.578h-.021l-9.407 18.625 9.428-18.625zm-16.79493 25.9998c.07255-.01441.14492-.02077.21746-.03694a9.52346 9.52346 0 0 0 5.00593-2.88926l.815-1.60844a9.65911 9.65911 0 0 1-6.03839 4.53464zm6.23793-4.92852l-.19954.39388.0114-.01759-.82127 1.62092a9.499 9.499 0 0 0 1.19756-1.62092l.18814-.18815.94072-2.634.48862-.96744-.30048.59116z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M286.02384 128.02557l-.0114.01759-.815 1.60844.00511-.00511zM258.17 182.97423l.19727-.38819a4.11213 4.11213 0 0 0 .56443-.94072l5.6442-11.28832 7.5256-15.23935a9.4245 9.4245 0 0 0-14.38256-11.52077 8.93718 8.93718 0 0 0-2.17371 2.86631v.18814l-13.358 26.904a9.408 9.408 0 0 0 4.32723 12.60533 9.61806 9.61806 0 0 0 3.30123.90763 9.47039 9.47039 0 0 0 8.35431-4.09406z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M267.96241 142.51234a9.18239 9.18239 0 0 1 4.13909 12.60532l-7.5256 15.23934.18815-.37629 3.66629-7.23618 3.85931-7.815a9.1824 9.1824 0 0 0-4.13909-12.60533 9.54993 9.54993 0 0 0-10.43162 1.2727 9.21467 9.21467 0 0 1 10.24347-1.08456zm-18.1467 44.55599a9.52394 9.52394 0 0 0 7.76887-2.94229l.58546-1.15181a9.47039 9.47039 0 0 1-8.35433 4.0941z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M258.93174 181.64532a4.11213 4.11213 0 0 1-.56443.94072l-.19727.38819.00913-.0119-.5801 1.14763a9.87788 9.87788 0 0 0 1.52082-2.08835l5.64416-11.85275 3.56979-7.22889-3.75794 7.417z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M264.576 170.357l3.758-7.417.096-.195-3.666 7.236-.188.376zm-6.39683 12.60533l-.00913.0119-.58546 1.15181.01449-.01608zm-28.47436 56.19011l.44154-.877c.18815-.37629.56444-.94072.75258-1.317l10.15953-20.31907 3.80151-7.47911a9.49138 9.49138 0 0 0-10.85842-12.0388 9.3473 9.3473 0 0 0-6.301 4.843l-13.358 26.90394a9.4298 9.4298 0 0 0 12.37152 12.72311 9.11894 9.11894 0 0 0 2.99074-2.43907z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M226.7141 241.59153a9.61839 9.61839 0 0 0 2.6682-1.79834l.32251-.64075a9.11894 9.11894 0 0 1-2.99071 2.43909zm13.40364-43.578a9.24534 9.24534 0 0 1 4.74226 11.14675l.19668-.38693a9.25737 9.25737 0 0 0-11.0551-11.65187 9.302 9.302 0 0 1 6.11616.89205z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M244.25683 210.61894l-3.38651 6.58488 3.82906-7.57494c.06015-.15556.10924-.31212.16059-.4686l-3.80151 7.47911-10.15953 20.31907c-.18814.37629-.56443.94072-.75258 1.317l-.44154.877c.08377-.10505.17373-.20306.2534-.31254l-.40243.79387a9.87179 9.87179 0 0 0 1.71944-2.299l9.78324-20.31907 3.38652-6.585a9.70415 9.70415 0 0 0 .49348-1.2747l-.23908.47287a9.76715 9.76715 0 0 1-.44255.99005z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M244.69938 209.62888l.23908-.47287c.04046-.12742.08326-.25458.11819-.38266l-.19668.38693c-.05135.15648-.10044.31304-.16059.4686zm-14.74117 29.21102c-.07967.10948-.16963.20749-.2534.31254l-.32251.64075c.05713-.05412.11753-.10379.17348-.15942zm14.29862-28.22096a9.76715 9.76715 0 0 0 .44255-.99006l-3.82906 7.57494zm-36.68728-61.14552a9.22039 9.22039 0 0 0 2.60462.9403 9.57056 9.57056 0 0 0 10.00079-4.89116l14.11048-26.52775a9.42567 9.42567 0 0 0-3.95094-12.79347 8.73961 8.73961 0 0 0-4.32724-1.12886H220.175L203.61861 136.68a9.76617 9.76617 0 0 0 3.95094 12.79342z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M210.17417 150.41372a9.24039 9.24039 0 0 0 10.00079-4.89116 9.57056 9.57056 0 0 1-10.00079 4.89116z\" class=\"cls-3\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"6.10 10.85 345.80 334.30\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M115.09287 338.742l-1.852-.07941a14.868 14.868 0 0 0 1.852.07941z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M345.18784 212.87648L316.40244 88.7043c-.18817-.75263-.56445-1.50513-.75256-2.25769a23.64542 23.64542 0 0 0-5.07978-7.14929l-.12829.2525c-.02051-.02063-.03937-.04382-.05988-.06439a19.93834 19.93834 0 0 0-2.25769-1.88135 20.626 20.626 0 0 0-3.95092-2.634L188.27915 19.46889q-.56424-.28227-1.12878-.56446a12.17166 12.17166 0 0 0-2.44587-.75256c-.17614-.04407-.38055-.05988-.57257-.08814-.628-.0924-1.29681-.144-1.87323-.28814a22.76456 22.76456 0 0 0-3.57464-.18817 47.94466 47.94466 0 0 0-7.33747.37634 9.44163 9.44163 0 0 0-2.25759.37624L53.383 74.2176c-.27545.10328-.5376.231-.80047.35718a13.604 13.604 0 0 0-2.24543 1.37287c-.31372.23455-.616.47479-.905.71576-.114.09112-.21692.1911-.32873.28393-.04474.03711-.087.07617-.13141.11353l-.04584-.092-.01532-.031-.04309-.08642a20.05086 20.05086 0 0 0-7.14929 11.47656L13.30918 213.25288a21.45849 21.45849 0 0 0-.37622 4.8916 11.57114 11.57114 0 0 0 .18817 2.44587 26.87493 26.87493 0 0 0 4.32715 11.10022l42.96155 53.24816 10.282 12.78888 26.71586 33.11249a29.80244 29.80244 0 0 0 12.041 6.96118l.00189.00049a19.69944 19.69944 0 0 0 3.19647.75208c.7525 0 1.69318.18817 2.4458.18817h127.93496a39.614 39.614 0 0 0 4.70349-.37628 19.24937 19.24937 0 0 0 12.79346-7.52564l59.82855-73.9389 20.319-25.21063a26.421 26.421 0 0 0 3.76282-8.09l.00012-.00067a3.98126 3.98126 0 0 1 .12451-.77362c.007-.0343.01569-.06861.02161-.10291l.00006-.00024.00012-.00067c.00647-.04163.01666-.08344.02087-.12519v-.00067c.00409-.04138.02076-.08282.02076-.1242l.00012-.00068a25.54436 25.54436 0 0 0 .73712-6.97985c-.01755-.86075-.06842-1.72977-.17258-2.61539zm-87.877-28.76654l-.01447.01611a9.5482 9.5482 0 0 1-11.07013 2.03467 9.408 9.408 0 0 1-4.32721-12.60535l13.358-26.90405v-.18811a8.937 8.937 0 0 1 2.17371-2.86633 9.55005 9.55005 0 0 1 10.43164-1.27271 9.18249 9.18249 0 0 1 4.1391 12.60535l-3.85931 7.815-.0965.19544-3.56982 7.22888-5.64417 11.85278a9.87529 9.87529 0 0 1-1.52085 2.08832zm-13.15412 26.3208l-3.38647 6.585-9.78326 20.319a9.87121 9.87121 0 0 1-1.71943 2.29907c-.056.05561-.11633.10529-.17346.15937a9.61743 9.61743 0 0 1-2.66821 1.79834 9.42977 9.42977 0 0 1-12.37152-12.72309l13.358-26.90393a9.56395 9.56395 0 0 1 12.60535-4.1391 9.45293 9.45293 0 0 1 4.75073 10.94794c-.03491.12811-.0777.25525-.11817.38269a9.69652 9.69652 0 0 1-.49357 1.27471zM207.62748 282.157a9.50065 9.50065 0 0 1-10.06024 2.183c-.27576-.10309-.55024-.21625-.82172-.34656a9.408 9.408 0 0 1-4.32727-12.60534l6.773-13.54615a9.49475 9.49475 0 0 1 5.649-4.40545 9.36464 9.36464 0 0 1 11.46045 11.76806l-.007.02143c-.05548.17285-.10382.34631-.1698.51788-.18817.18811-.18817.18811-.18817.37628l-6.58484 13.73419a9.87977 9.87977 0 0 1-1.52368 2.09143c-.06674.07042-.13121.14317-.19973.21123zm2.25852-131.74329a9.21794 9.21794 0 0 1-2.60461-.94031 9.76615 9.76615 0 0 1-3.951-12.79345l16.5564-31.60749h5.83221a8.73886 8.73886 0 0 1 4.32721 1.12891 9.4256 9.4256 0 0 1 3.951 12.79346l-14.11047 26.52771a9.24039 9.24039 0 0 1-10.00074 4.89117zm77.3548-25.21033l-.94074 2.634-.18811.18817a9.4997 9.4997 0 0 1-1.19757 1.62091l-.00512.00513a9.52354 9.52354 0 0 1-5.00592 2.88922c-.07251.01617-.1449.02252-.21747.03692a9.46066 9.46066 0 0 1-11.07093-7.18622h-11.28843a9.407 9.407 0 1 1 0-18.8139h39.32123l-8.91833 17.65839zm-98.96149 39.69751a9.46795 9.46795 0 1 1 16.74439 8.84265l-14.11048 26.52765a9.3656 9.3656 0 0 1-16.98852-.714 9.95378 9.95378 0 0 1 .244-8.12848zm-86.74688 17.72626l-37.8018-77.17841h76.19665l.10163.18818 30.377 56.25378-10.34771 19.37842-.37628.18817-30.85486-57.19452h-33.677l53.05542 112.69568 7.52557-14.29865a9.48448 9.48448 0 0 1 17.44214 1.64783c.01734.0567.02918.11463.04541.17157.04822.17951.09839.35828.136.54059a9.317 9.317 0 0 1-.87915 6.48267l-13.73419 25.77508-10.48718 19.47608-.04865.09045-.18817.37628-.02661-.0542-29.06765-59.11352-10.03876-20.41541-5.88152-12.00822z\" class=\"cls-1\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.21.1" + }, + "name": "kubevirt", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/AlternateProcess.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/AlternateProcess.json index fae60875ac4..45e16e519e2 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/AlternateProcess.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/AlternateProcess.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Decision.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Decision.json index 91cc9327100..93dc08c4e81 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Decision.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Decision.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Delay.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Delay.json index 7e639792e34..f3b0d540474 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Delay.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Delay.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Loop Limit.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Loop Limit.json index dd2d2fcee25..8ad7c5e5297 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Loop Limit.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Loop Limit.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/ManualInput.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/ManualInput.json index cb004d34b0c..1d7b653f2fa 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/ManualInput.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/ManualInput.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/ManualOperation.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/ManualOperation.json index 11aa86ad562..7d47ac2c201 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/ManualOperation.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/ManualOperation.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Merge.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Merge.json index 34734357a12..9c39dc46456 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Merge.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Merge.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/OffPageReference.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/OffPageReference.json index e00d5cbba1a..da575f6d438 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/OffPageReference.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/OffPageReference.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/OnPageReference.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/OnPageReference.json index a4333e055da..e09813398b7 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/OnPageReference.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/OnPageReference.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Preparation.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Preparation.json index 26dc9525d11..ff9b8755437 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Preparation.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Preparation.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Terminal.json b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Terminal.json index 378f7f6a741..1af967c9f18 100644 --- a/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Terminal.json +++ b/server/meshmodel/meshery-flowchart/0.7.1/v1.0.0/components/Terminal.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/AlternateProcess.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/AlternateProcess.json index 52c4ab24ddf..ae25d240a16 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/AlternateProcess.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/AlternateProcess.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Decision.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Decision.json index ec4d0152c7e..38f87eb89d0 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Decision.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Decision.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Delay.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Delay.json index 5dcb3b4878a..93dcdd03a2d 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Delay.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Delay.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Loop Limit.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Loop Limit.json index bc364aa8087..d91050aab69 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Loop Limit.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Loop Limit.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/ManualInput.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/ManualInput.json index 7c21eb7d681..b59930918b0 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/ManualInput.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/ManualInput.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/ManualOperation.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/ManualOperation.json index e34a2bbdb3a..74962538080 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/ManualOperation.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/ManualOperation.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Merge.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Merge.json index 12416ba9b62..b57bc7ad6d6 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Merge.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Merge.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/OffPageReference.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/OffPageReference.json index 8a47433b932..640dab3e1cd 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/OffPageReference.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/OffPageReference.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/OnPageReference.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/OnPageReference.json index 3b08d940dc7..da0c18296f5 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/OnPageReference.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/OnPageReference.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Preparation.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Preparation.json index aef0736444d..62d32717990 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Preparation.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Preparation.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Terminal.json b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Terminal.json index 65b591fac05..298626ad8c4 100644 --- a/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Terminal.json +++ b/server/meshmodel/meshery-flowchart/0.7.2/v1.0.0/components/Terminal.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-shapes/0.7.1/v1.0.0/components/Trapezoid.json b/server/meshmodel/meshery-shapes/0.7.1/v1.0.0/components/Trapezoid.json index 396aaa475ae..994ec73ae38 100644 --- a/server/meshmodel/meshery-shapes/0.7.1/v1.0.0/components/Trapezoid.json +++ b/server/meshmodel/meshery-shapes/0.7.1/v1.0.0/components/Trapezoid.json @@ -118,10 +118,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/meshery-shapes/0.7.2/v1.0.0/components/Trapezoid.json b/server/meshmodel/meshery-shapes/0.7.2/v1.0.0/components/Trapezoid.json index 4ee38881b5d..48dcfa4523a 100644 --- a/server/meshmodel/meshery-shapes/0.7.2/v1.0.0/components/Trapezoid.json +++ b/server/meshmodel/meshery-shapes/0.7.2/v1.0.0/components/Trapezoid.json @@ -121,10 +121,9 @@ "schemaVersion": "components.meshery.io/v1beta1", "status": "enabled", "styles": { - "background-image": "none", - "background-opacity": 0.1, + "background-opacity": 0, "border-style": "solid", - "border-width": 1, + "border-width": 0, "height": 30, "primaryColor": "#00B39F", "secondaryColor": "#00D3A9", diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/AdvancedCronJob.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/AdvancedCronJob.json new file mode 100644 index 00000000000..0605c67deca --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/AdvancedCronJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "AdvancedCronJob", + "schema": "{\n \"description\": \"AdvancedCronJob is the Schema for the advancedcronjobs API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"AdvancedCronJobSpec defines the desired state of AdvancedCronJob\",\n \"properties\": {\n \"concurrencyPolicy\": {\n \"description\": \"Specifies how to treat concurrent executions of a Job.\\nValid values are:\\n- \\\"Allow\\\" (default): allows CronJobs to run concurrently;\\n- \\\"Forbid\\\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\\n- \\\"Replace\\\": cancels currently running job and replaces it with a new one\",\n \"enum\": [\n \"Allow\",\n \"Forbid\",\n \"Replace\"\n ],\n \"type\": \"string\"\n },\n \"failedJobsHistoryLimit\": {\n \"description\": \"The number of failed finished jobs to retain.\\nThis is a pointer to distinguish between explicit zero and not specified.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"paused\": {\n \"description\": \"Paused will pause the cron job.\",\n \"type\": \"boolean\"\n },\n \"schedule\": {\n \"description\": \"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\n \"minLength\": 0,\n \"type\": \"string\"\n },\n \"startingDeadlineSeconds\": {\n \"description\": \"Optional deadline in seconds for starting the job if it misses scheduled\\ntime for any reason. Missed jobs executions will be counted as failed ones.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"successfulJobsHistoryLimit\": {\n \"description\": \"The number of successful finished jobs to retain.\\nThis is a pointer to distinguish between explicit zero and not specified.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"template\": {\n \"description\": \"Specifies the job that will be created when executing a CronJob.\",\n \"properties\": {\n \"broadcastJobTemplate\": {\n \"description\": \"Specifies the broadcastjob that will be created when executing a BroadcastCronJob.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Standard object's metadata of the jobs created from this template.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the broadcastjob.\",\n \"properties\": {\n \"completionPolicy\": {\n \"description\": \"CompletionPolicy indicates the completion policy of the job.\\nDefault is Always CompletionPolicyType.\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the job may be active\\nbefore the system tries to terminate it; value must be positive integer.\\nOnly works for Always type.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"ttlSecondsAfterFinished\": {\n \"description\": \"ttlSecondsAfterFinished limits the lifetime of a Job that has finished\\nexecution (either Complete or Failed). If this field is set,\\nttlSecondsAfterFinished after the Job finishes, it is eligible to be\\nautomatically deleted. When the Job is being deleted, its lifecycle\\nguarantees (e.g. finalizers) will be honored. If this field is unset,\\nthe Job won't be automatically deleted. If this field is set to zero,\\nthe Job becomes eligible to be deleted immediately after it finishes.\\nThis field is alpha-level and is only honored by servers that enable the\\nTTLAfterFinished feature.\\nOnly works for Always type\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the CompletionPolicy.\\nDefault is Always.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"failurePolicy\": {\n \"description\": \"FailurePolicy indicates the behavior of the job, when failed pod is found.\",\n \"properties\": {\n \"restartLimit\": {\n \"description\": \"RestartLimit specifies the number of retries before marking the pod failed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of FailurePolicyType.\\nDefault is FailurePolicyTypeFailFast.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"parallelism\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Parallelism specifies the maximum desired number of pods the job should\\nrun at any given time. The actual number of pods running in steady state will\\nbe less than this number when the work left to do is less than max parallelism.\\nNot setting this value means no limit.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"paused\": {\n \"description\": \"Paused will pause the job.\",\n \"type\": \"boolean\"\n },\n \"template\": {\n \"description\": \"Template describes the pod that will be created when executing a job.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"jobTemplate\": {\n \"description\": \"Specifies the job that will be created when executing a CronJob.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"timeZone\": {\n \"description\": \"The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\\nIf not specified, this will default to the time zone of the kruise-controller-manager process.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"schedule\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Advanced Cron Job\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Advanced Cron Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/BroadcastJob.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/BroadcastJob.json new file mode 100644 index 00000000000..97d70c82f0c --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/BroadcastJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "BroadcastJob", + "schema": "{\n \"description\": \"BroadcastJob is the Schema for the broadcastjobs API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"BroadcastJobSpec defines the desired state of BroadcastJob\",\n \"properties\": {\n \"completionPolicy\": {\n \"description\": \"CompletionPolicy indicates the completion policy of the job.\\nDefault is Always CompletionPolicyType.\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the job may be active\\nbefore the system tries to terminate it; value must be positive integer.\\nOnly works for Always type.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"ttlSecondsAfterFinished\": {\n \"description\": \"ttlSecondsAfterFinished limits the lifetime of a Job that has finished\\nexecution (either Complete or Failed). If this field is set,\\nttlSecondsAfterFinished after the Job finishes, it is eligible to be\\nautomatically deleted. When the Job is being deleted, its lifecycle\\nguarantees (e.g. finalizers) will be honored. If this field is unset,\\nthe Job won't be automatically deleted. If this field is set to zero,\\nthe Job becomes eligible to be deleted immediately after it finishes.\\nThis field is alpha-level and is only honored by servers that enable the\\nTTLAfterFinished feature.\\nOnly works for Always type\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the CompletionPolicy.\\nDefault is Always.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"failurePolicy\": {\n \"description\": \"FailurePolicy indicates the behavior of the job, when failed pod is found.\",\n \"properties\": {\n \"restartLimit\": {\n \"description\": \"RestartLimit specifies the number of retries before marking the pod failed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of FailurePolicyType.\\nDefault is FailurePolicyTypeFailFast.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"parallelism\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Parallelism specifies the maximum desired number of pods the job should\\nrun at any given time. The actual number of pods running in steady state will\\nbe less than this number when the work left to do is less than max parallelism.\\nNot setting this value means no limit.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"paused\": {\n \"description\": \"Paused will pause the job.\",\n \"type\": \"boolean\"\n },\n \"template\": {\n \"description\": \"Template describes the pod that will be created when executing a job.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Broadcast Job\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Broadcast Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/CloneSet.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/CloneSet.json new file mode 100644 index 00000000000..1eeb1bcb529 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/CloneSet.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "CloneSet", + "schema": "{\n \"description\": \"CloneSet is the Schema for the clonesets API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"CloneSetSpec defines the desired state of CloneSet\",\n \"properties\": {\n \"lifecycle\": {\n \"description\": \"Lifecycle defines the lifecycle hooks for Pods pre-available(pre-normal), pre-delete, in-place update.\",\n \"properties\": {\n \"inPlaceUpdate\": {\n \"description\": \"InPlaceUpdate is the hook before Pod to update and after Pod has been updated.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"preDelete\": {\n \"description\": \"PreDelete is the hook before Pod to be deleted.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"preNormal\": {\n \"description\": \"PreNormal is the hook after Pod to be created and ready to be Normal.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"minReadySeconds\": {\n \"description\": \"Minimum number of seconds for which a newly created pod should be ready\\nwithout any of its container crashing, for it to be considered available.\\nDefaults to 0 (pod will be considered available as soon as it is ready)\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"replicas\": {\n \"description\": \"Replicas is the desired number of replicas of the given Template.\\nThese are replicas in the sense that they are instantiations of the\\nsame Template.\\nIf unspecified, defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the maximum number of revisions that will\\nbe maintained in the CloneSet's revision history. The revision history\\nconsists of all revisions not represented by a currently applied\\nCloneSetSpec version. The default value is 10.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"scaleStrategy\": {\n \"description\": \"ScaleStrategy indicates the ScaleStrategy that will be employed to\\ncreate and delete Pods in the CloneSet.\",\n \"properties\": {\n \"disablePVCReuse\": {\n \"description\": \"Indicate if cloneSet will reuse already existed pvc to\\nrebuild a new pod\",\n \"type\": \"boolean\"\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable for scaled pods.\\nThis field can control the changes rate of replicas for CloneSet so as to minimize the impact for users' service.\\nThe scale will fail if the number of unavailable pods were greater than this MaxUnavailable at scaling up.\\nMaxUnavailable works only when scaling up.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"podsToDelete\": {\n \"description\": \"PodsToDelete is the names of Pod should be deleted.\\nNote that this list will be truncated for non-existing pod names.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"Selector is a label query over pods that should match the replica count.\\nIt must match the pod template's labels.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"template\": {\n \"description\": \"Template describes the pods that will be created.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"updateStrategy\": {\n \"description\": \"UpdateStrategy indicates the UpdateStrategy that will be employed to\\nupdate Pods in the CloneSet when a revision is made to Template.\",\n \"properties\": {\n \"inPlaceUpdateStrategy\": {\n \"description\": \"InPlaceUpdateStrategy contains strategies for in-place update.\",\n \"properties\": {\n \"gracePeriodSeconds\": {\n \"description\": \"GracePeriodSeconds is the timespan between set Pod status to not-ready and update images in Pod spec\\nwhen in-place update a Pod.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be scheduled above the desired replicas during update or specified delete.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding up.\\nDefaults to 0.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during update or scale.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding up by default.\\nWhen maxSurge \\u003e 0, absolute number is calculated from percentage by rounding down.\\nDefaults to 20%.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Partition is the desired number of pods in old revisions.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding up by default.\\nIt means when partition is set during pods updating, (replicas - partition value) number of pods will be updated.\\nDefault value is 0.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"paused\": {\n \"description\": \"Paused indicates that the CloneSet is paused.\\nDefault value is false\",\n \"type\": \"boolean\"\n },\n \"priorityStrategy\": {\n \"description\": \"Priorities are the rules for calculating the priority of updating pods.\\nEach pod to be updated, will pass through these terms and get a sum of weights.\",\n \"properties\": {\n \"orderPriority\": {\n \"description\": \"Order priority terms, pods will be sorted by the value of orderedKey.\\nFor example:\\n```\\norderPriority:\\n- orderedKey: key1\\n- orderedKey: key2\\n```\\nFirst, all pods which have key1 in labels will be sorted by the value of key1.\\nThen, the left pods which have no key1 but have key2 in labels will be sorted by\\nthe value of key2 and put behind those pods have key1.\",\n \"items\": {\n \"description\": \"UpdatePriorityOrderTerm defines order priority.\",\n \"properties\": {\n \"orderedKey\": {\n \"description\": \"Calculate priority by value of this key.\\nValues of this key, will be sorted by GetInt(val). GetInt method will find the last int in value,\\nsuch as getting 5 in value '5', getting 10 in value 'sts-10'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"orderedKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"weightPriority\": {\n \"description\": \"Weight priority terms, pods will be sorted by the sum of all terms weight.\",\n \"items\": {\n \"description\": \"UpdatePriorityWeightTerm defines weight priority.\",\n \"properties\": {\n \"matchSelector\": {\n \"description\": \"MatchSelector is used to select by pod's labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding matchExpressions, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"matchSelector\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"scatterStrategy\": {\n \"description\": \"ScatterStrategy defines the scatter rules to make pods been scattered when update.\\nThis will avoid pods with the same key-value to be updated in one batch.\\n- Note that pods will be scattered after priority sort. So, although priority strategy and scatter strategy can be applied together, we suggest to use either one of them.\\n- If scatterStrategy is used, we suggest to just use one term. Otherwise, the update order can be hard to understand.\",\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the CloneSetUpdateStrategy.\\nDefault is ReCreate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"VolumeClaimTemplates is a list of claims that pods are allowed to reference.\\nNote that PVC will be deleted when its pod has been deleted.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"selector\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Clone Set\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Clone Set", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ContainerRecreateRequest.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ContainerRecreateRequest.json new file mode 100644 index 00000000000..e546a261a56 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ContainerRecreateRequest.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ContainerRecreateRequest", + "schema": "{\n \"description\": \"ContainerRecreateRequest is the Schema for the containerrecreaterequests API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ContainerRecreateRequestSpec defines the desired state of ContainerRecreateRequest\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"ActiveDeadlineSeconds is the deadline duration of this ContainerRecreateRequest.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"containers\": {\n \"description\": \"Containers contains the containers that need to recreate in the Pod.\",\n \"items\": {\n \"description\": \"ContainerRecreateRequestContainer defines the container that need to recreate.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the container that need to recreate.\\nIt must be existing in the real pod.Spec.Containers.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"Ports is synced from the real container in Pod spec during this ContainerRecreateRequest creating.\\nPopulated by the system.\\nRead-only.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address.\\nThis must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host.\\nIf specified, this must be a valid port number, 0 \\u003c x \\u003c 65536.\\nIf HostNetwork is specified, this must match ContainerPort.\\nMost containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\\nnamed port in a pod must have a unique name. Name for the port that can be\\nreferred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP.\\nDefaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"preStop\": {\n \"description\": \"PreStop is synced from the real container in Pod spec during this ContainerRecreateRequest creating.\\nPopulated by the system.\\nRead-only.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"One and only one of the following should be specified.\\nExec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\\nTCP hooks not yet supported\\nTODO: implement a realistic TCP lifecycle hook\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"statusContext\": {\n \"description\": \"StatusContext is synced from the real Pod status during this ContainerRecreateRequest creating.\\nPopulated by the system.\\nRead-only.\",\n \"properties\": {\n \"containerID\": {\n \"description\": \"Container's ID in the format 'docker://\\u003ccontainer_id\\u003e'.\",\n \"type\": \"string\"\n },\n \"restartCount\": {\n \"description\": \"The number of times the container has been restarted, currently based on\\nthe number of dead containers that have not yet been removed.\\nNote that this is calculated from dead containers. But those containers are subject to\\ngarbage collection. This value will get capped at 5 by GC.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"containerID\",\n \"restartCount\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"podName\": {\n \"description\": \"PodName is name of the Pod that owns the recreated containers.\",\n \"type\": \"string\"\n },\n \"strategy\": {\n \"description\": \"Strategy defines strategies for containers recreation.\",\n \"properties\": {\n \"failurePolicy\": {\n \"description\": \"FailurePolicy decides whether to continue if one container fails to recreate\",\n \"type\": \"string\"\n },\n \"forceRecreate\": {\n \"description\": \"ForceRecreate indicates whether to force kill the container even if the previous container is starting.\",\n \"type\": \"boolean\"\n },\n \"minStartedSeconds\": {\n \"description\": \"Minimum number of seconds for which a newly created container should be started and ready\\nwithout any of its container crashing, for it to be considered Succeeded.\\nDefaults to 0 (container will be considered Succeeded as soon as it is started and ready)\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"orderedRecreate\": {\n \"description\": \"OrderedRecreate indicates whether to recreate the next container only if the previous one has recreated completely.\",\n \"type\": \"boolean\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"TerminationGracePeriodSeconds is the optional duration in seconds to wait the container terminating gracefully.\\nValue must be non-negative integer. The value zero indicates delete immediately.\\nIf this value is nil, we will use pod.Spec.TerminationGracePeriodSeconds as default value.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"unreadyGracePeriodSeconds\": {\n \"description\": \"UnreadyGracePeriodSeconds is the optional duration in seconds to mark Pod as not ready over this duration before\\nexecuting preStop hook and stopping the container.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"description\": \"TTLSecondsAfterFinished is the TTL duration after this ContainerRecreateRequest has completed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"containers\",\n \"podName\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Container Recreate Request\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Container Recreate Request", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/DaemonSet.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/DaemonSet.json new file mode 100644 index 00000000000..31804e4599b --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/DaemonSet.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "DaemonSet", + "schema": "{\n \"description\": \"DaemonSet is the Schema for the daemonsets API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"DaemonSetSpec defines the desired state of DaemonSet\",\n \"properties\": {\n \"burstReplicas\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"BurstReplicas is a rate limiter for booting pods on a lot of pods.\\nThe default value is 250\",\n \"x-kubernetes-int-or-string\": true\n },\n \"lifecycle\": {\n \"description\": \"Lifecycle defines the lifecycle hooks for Pods pre-delete, in-place update.\\nCurrently, we only support pre-delete hook for Advanced DaemonSet.\",\n \"properties\": {\n \"inPlaceUpdate\": {\n \"description\": \"InPlaceUpdate is the hook before Pod to update and after Pod has been updated.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"preDelete\": {\n \"description\": \"PreDelete is the hook before Pod to be deleted.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"preNormal\": {\n \"description\": \"PreNormal is the hook after Pod to be created and ready to be Normal.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"minReadySeconds\": {\n \"description\": \"The minimum number of seconds for which a newly created DaemonSet pod should\\nbe ready without any of its container crashing, for it to be considered\\navailable. Defaults to 0 (pod will be considered available as soon as it\\nis ready).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"The number of old history to retain to allow rollback.\\nThis is a pointer to distinguish between explicit zero and not specified.\\nDefaults to 10.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"selector\": {\n \"description\": \"A label query over pods that are managed by the daemon set.\\nMust match in order to be controlled.\\nIt must match the pod template's labels.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"template\": {\n \"description\": \"An object that describes the pod that will be created.\\nThe DaemonSet will create exactly one copy of this pod on every node\\nthat matches the template's node selector (or on every node if no node\\nselector is specified).\\nMore info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"updateStrategy\": {\n \"description\": \"An update strategy to replace existing DaemonSet pods with new pods.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\n \"properties\": {\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of nodes with an existing available DaemonSet pod that\\ncan have an updated DaemonSet pod during during an update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nThis can not be 0 if MaxUnavailable is 0.\\nAbsolute number is calculated from percentage by rounding up to a minimum of 1.\\nDefault value is 0.\\nExample: when this is set to 30%, at most 30% of the total number of nodes\\nthat should be running the daemon pod (i.e. status.desiredNumberScheduled)\\ncan have their a new pod created before the old pod is marked as deleted.\\nThe update starts by launching new pods on 30% of nodes. Once an updated\\npod is available (Ready for at least minReadySeconds) the old DaemonSet pod\\non that node is marked deleted. If the old pod becomes unavailable for any\\nreason (Ready transitions to false, is evicted, or is drained) an updated\\npod is immediately created on that node without considering surge limits.\\nAllowing surge implies the possibility that the resources consumed by the\\ndaemonset on any given node can double if the readiness check fails, and\\nso resource intensive daemonsets should take into account that they may\\ncause evictions during disruption.\\nThis is beta field and enabled/disabled by DaemonSetUpdateSurge feature gate.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of DaemonSet pods that can be unavailable during the\\nupdate. Value can be an absolute number (ex: 5) or a percentage of total\\nnumber of DaemonSet pods at the start of the update (ex: 10%). Absolute\\nnumber is calculated from percentage by rounding up.\\nThis cannot be 0 if MaxSurge is 0\\nDefault value is 1.\\nExample: when this is set to 30%, at most 30% of the total number of nodes\\nthat should be running the daemon pod (i.e. status.desiredNumberScheduled)\\ncan have their pods stopped for an update at any given time. The update\\nstarts by stopping at most 30% of those DaemonSet pods and then brings\\nup new DaemonSet pods in their place. Once the new pods are available,\\nit then proceeds onto other DaemonSet pods, thus ensuring that at least\\n70% of original number of DaemonSet pods are available at all times during\\nthe update.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"description\": \"The number of DaemonSet pods remained to be old version.\\nDefault value is 0.\\nMaximum value is status.DesiredNumberScheduled, which means no pod will be updated.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"paused\": {\n \"description\": \"Indicates that the daemon set is paused and will not be processed by the\\ndaemon set controller.\",\n \"type\": \"boolean\"\n },\n \"rollingUpdateType\": {\n \"description\": \"Type is to specify which kind of rollingUpdate.\",\n \"type\": \"string\"\n },\n \"selector\": {\n \"description\": \"A label query over nodes that are managed by the daemon set RollingUpdate.\\nMust match in order to be controlled.\\nIt must match the node's labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"selector\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Daemon Set\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Daemon Set", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/EphemeralJob.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/EphemeralJob.json new file mode 100644 index 00000000000..b7500b8aed4 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/EphemeralJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "EphemeralJob", + "schema": "{\n \"description\": \"EphemeralJob is the Schema for the ephemeraljobs API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"EphemeralJobSpec defines the desired state of EphemeralJob\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the job may be active\\nbefore the system tries to terminate it; value must be positive integer.\\nOnly works for Always type.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"parallelism\": {\n \"description\": \"Parallelism specifies the maximum desired number of pods which matches running ephemeral containers.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"paused\": {\n \"description\": \"Paused will pause the ephemeral job.\",\n \"type\": \"boolean\"\n },\n \"replicas\": {\n \"description\": \"Replicas indicates a part of the quantity from matched pods by selector.\\nUsually it is used for gray scale working.\\nif Replicas exceeded the matched number by selector or not be set, replicas will not work.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"selector\": {\n \"description\": \"INSERT ADDITIONAL SPEC FIELDS - desired state of cluster\\nImportant: Run \\\"make\\\" to regenerate code after modifying this file\\nSelector is a label query over pods that should match the pod labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"template\": {\n \"description\": \"Template describes the ephemeral container that will be created.\",\n \"properties\": {\n \"ephemeralContainers\": {\n \"description\": \"EphemeralContainers defines ephemeral container list in match pods.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ephemeralContainers\"\n ],\n \"type\": \"object\"\n },\n \"ttlSecondsAfterFinished\": {\n \"description\": \"ttlSecondsAfterFinished limits the lifetime of a Job that has finished\\nexecution (either Complete or Failed). If this field is set,\\nttlSecondsAfterFinished after the eJob finishes, it is eligible to be\\nautomatically deleted. When the Job is being deleted, its lifecycle\\nguarantees (e.g. finalizers) will be honored.\\nIf this field is unset, default value is 1800\\nIf this field is set to zero,\\nthe Job becomes eligible to be deleted immediately after it finishes.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"selector\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Ephemeral Job\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Ephemeral Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ImageListPullJob.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ImageListPullJob.json new file mode 100644 index 00000000000..3d727d4d081 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ImageListPullJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ImageListPullJob", + "schema": "{\n \"description\": \"ImageListPullJob is the Schema for the imagelistpulljobs API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ImageListPullJobSpec defines the desired state of ImageListPullJob\",\n \"properties\": {\n \"completionPolicy\": {\n \"description\": \"CompletionPolicy indicates the completion policy of the job.\\nDefault is Always CompletionPolicyType.\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the job may be active\\nbefore the system tries to terminate it; value must be positive integer.\\nOnly works for Always type.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"ttlSecondsAfterFinished\": {\n \"description\": \"ttlSecondsAfterFinished limits the lifetime of a Job that has finished\\nexecution (either Complete or Failed). If this field is set,\\nttlSecondsAfterFinished after the Job finishes, it is eligible to be\\nautomatically deleted. When the Job is being deleted, its lifecycle\\nguarantees (e.g. finalizers) will be honored. If this field is unset,\\nthe Job won't be automatically deleted. If this field is set to zero,\\nthe Job becomes eligible to be deleted immediately after it finishes.\\nThis field is alpha-level and is only honored by servers that enable the\\nTTLAfterFinished feature.\\nOnly works for Always type\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the CompletionPolicy.\\nDefault is Always.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, IfNotPresent. Defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"images\": {\n \"description\": \"Images is the image list to be pulled by the job\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"parallelism\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Parallelism is the requested parallelism, it can be set to any non-negative value. If it is unspecified,\\nit defaults to 1. If it is specified as 0, then the Job is effectively paused until it is increased.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"podSelector\": {\n \"description\": \"PodSelector is a query over pods that should pull image on nodes of these pods.\\nMutually exclusive with Selector.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"pullPolicy\": {\n \"description\": \"PullPolicy is an optional field to set parameters of the pulling task. If not specified,\\nthe system will use the default values.\",\n \"properties\": {\n \"backoffLimit\": {\n \"description\": \"Specifies the number of retries before marking the pulling task failed.\\nDefaults to 3\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Specifies the timeout of the pulling task.\\nDefaults to 600\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"pullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling the image.\\nIf specified, these secrets will be passed to individual puller implementations for them to use. For example,\\nin the case of docker, only DockerConfig type secrets are honored.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sandboxConfig\": {\n \"description\": \"SandboxConfig support attach metadata in PullImage CRI interface during ImagePulljobs\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"Selector is a query over nodes that should match the job.\\nnil to match all nodes.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n },\n \"names\": {\n \"description\": \"Names specify a set of nodes to execute the job.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"completionPolicy\",\n \"images\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Image List Pull Job\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Image List Pull Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ImagePullJob.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ImagePullJob.json new file mode 100644 index 00000000000..0f99eb8a0a6 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ImagePullJob.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ImagePullJob", + "schema": "{\n \"description\": \"ImagePullJob is the Schema for the imagepulljobs API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ImagePullJobSpec defines the desired state of ImagePullJob\",\n \"properties\": {\n \"completionPolicy\": {\n \"description\": \"CompletionPolicy indicates the completion policy of the job.\\nDefault is Always CompletionPolicyType.\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the job may be active\\nbefore the system tries to terminate it; value must be positive integer.\\nOnly works for Always type.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"ttlSecondsAfterFinished\": {\n \"description\": \"ttlSecondsAfterFinished limits the lifetime of a Job that has finished\\nexecution (either Complete or Failed). If this field is set,\\nttlSecondsAfterFinished after the Job finishes, it is eligible to be\\nautomatically deleted. When the Job is being deleted, its lifecycle\\nguarantees (e.g. finalizers) will be honored. If this field is unset,\\nthe Job won't be automatically deleted. If this field is set to zero,\\nthe Job becomes eligible to be deleted immediately after it finishes.\\nThis field is alpha-level and is only honored by servers that enable the\\nTTLAfterFinished feature.\\nOnly works for Always type\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the CompletionPolicy.\\nDefault is Always.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the image to be pulled by the job\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, IfNotPresent. Defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"parallelism\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Parallelism is the requested parallelism, it can be set to any non-negative value. If it is unspecified,\\nit defaults to 1. If it is specified as 0, then the Job is effectively paused until it is increased.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"podSelector\": {\n \"description\": \"PodSelector is a query over pods that should pull image on nodes of these pods.\\nMutually exclusive with Selector.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"pullPolicy\": {\n \"description\": \"PullPolicy is an optional field to set parameters of the pulling task. If not specified,\\nthe system will use the default values.\",\n \"properties\": {\n \"backoffLimit\": {\n \"description\": \"Specifies the number of retries before marking the pulling task failed.\\nDefaults to 3\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Specifies the timeout of the pulling task.\\nDefaults to 600\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"pullSecrets\": {\n \"description\": \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling the image.\\nIf specified, these secrets will be passed to individual puller implementations for them to use. For example,\\nin the case of docker, only DockerConfig type secrets are honored.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sandboxConfig\": {\n \"description\": \"SandboxConfig support attach metadata in PullImage CRI interface during ImagePulljobs\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"Selector is a query over nodes that should match the job.\\nnil to match all nodes.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n },\n \"names\": {\n \"description\": \"Names specify a set of nodes to execute the job.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"completionPolicy\",\n \"image\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Image Pull Job\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Image Pull Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/NodeImage.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/NodeImage.json new file mode 100644 index 00000000000..0ff26181241 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/NodeImage.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "NodeImage", + "schema": "{\n \"description\": \"NodeImage is the Schema for the nodeimages API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"NodeImageSpec defines the desired state of NodeImage\",\n \"properties\": {\n \"images\": {\n \"additionalProperties\": {\n \"description\": \"ImageSpec defines the pulling spec of an image\",\n \"properties\": {\n \"pullSecrets\": {\n \"description\": \"PullSecrets is an optional list of references to secrets in the same namespace to use for pulling the image.\\nIf specified, these secrets will be passed to individual puller implementations for them to use. For example,\\nin the case of docker, only DockerConfig type secrets are honored.\",\n \"items\": {\n \"description\": \"ReferenceObject comprises a resource name, with a mandatory namespace,\\nrendered as \\\"\\u003cnamespace\\u003e/\\u003cname\\u003e\\\".\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sandboxConfig\": {\n \"description\": \"SandboxConfig support attach metadata in PullImage CRI interface during ImagePulljobs\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tags\": {\n \"description\": \"Tags is a list of versions of this image\",\n \"items\": {\n \"description\": \"ImageTagSpec defines the pulling spec of an image tag\",\n \"properties\": {\n \"createdAt\": {\n \"description\": \"Specifies the create time of this tag\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy.\\nOne of Always, IfNotPresent. Defaults to IfNotPresent.\",\n \"type\": \"string\"\n },\n \"ownerReferences\": {\n \"description\": \"List of objects depended by this object. If this image is managed by a controller,\\nthen an entry in this list will point to this controller.\",\n \"items\": {\n \"description\": \"ObjectReference contains enough information to let you inspect or modify the referred object.\\n---\\nNew uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\\n 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.\\n 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular\\n restrictions like, \\\"must refer only to types A and B\\\" or \\\"UID not honored\\\" or \\\"name must be restricted\\\".\\n Those cannot be well described when embedded.\\n 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\\n 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity\\n during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple\\n and the version of the actual struct is irrelevant.\\n 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type\\n will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.\\n\\n\\nInstead of using this type, create a locally provided and used type that is well-focused on your reference.\\nFor example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"If referring to a piece of an object instead of an entire object, this string\\nshould contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\\nFor example, if the object reference is to a container within a pod, this would take on a value like:\\n\\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered\\nthe event) or if no container name is specified \\\"spec.containers[2]\\\" (container with\\nindex 2 in this pod). This syntax is chosen only to have some well-defined way of\\nreferencing a part of an object.\\nTODO: this design is not final and this field is subject to change in the future.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"description\": \"Specific resourceVersion to which this reference is made, if any.\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"pullPolicy\": {\n \"description\": \"PullPolicy is an optional field to set parameters of the pulling task. If not specified,\\nthe system will use the default values.\",\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"description\": \"ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the task may be active\\nbefore the system tries to terminate it; value must be positive integer.\\nif not specified, the system will never terminate it.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"backoffLimit\": {\n \"description\": \"Specifies the number of retries before marking the pulling task failed.\\nDefaults to 3\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Specifies the timeout of the pulling task.\\nDefaults to 600\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"ttlSecondsAfterFinished\": {\n \"description\": \"TTLSecondsAfterFinished limits the lifetime of a pulling task that has finished execution (either Complete or Failed).\\nIf this field is set, ttlSecondsAfterFinished after the task finishes, it is eligible to be automatically deleted.\\nIf this field is unset, the task won't be automatically deleted.\\nIf this field is set to zero, the task becomes eligible to be deleted immediately after it finishes.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tag\": {\n \"description\": \"Specifies the image tag\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"An opaque value that represents the internal version of this tag that can\\nbe used by clients to determine when objects have changed. May be used for optimistic\\nconcurrency, change detection, and the watch operation on a resource or set of resources.\\nClients must treat these values as opaque and passed unmodified back to the server.\\n\\n\\nPopulated by the system.\\nRead-only.\\nValue must be treated as opaque by clients and .\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"tag\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"tags\"\n ],\n \"type\": \"object\"\n },\n \"description\": \"Specifies images to be pulled on this node\\nIt can not be more than 256 for each NodeImage\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Node Image\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Node Image", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/NodePodProbe.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/NodePodProbe.json new file mode 100644 index 00000000000..f5fdcfe9c9b --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/NodePodProbe.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "NodePodProbe", + "schema": "{\n \"description\": \"NodePodProbe is the Schema for the NodePodProbe API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"NodePodProbeSpec defines the desired state of NodePodProbe\",\n \"properties\": {\n \"podProbes\": {\n \"items\": {\n \"properties\": {\n \"IP\": {\n \"description\": \"pod ip\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"pod name\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"pod namespace\",\n \"type\": \"string\"\n },\n \"probes\": {\n \"description\": \"Custom container probe, supports Exec, Tcp, and returns the result to Pod yaml\",\n \"items\": {\n \"properties\": {\n \"containerName\": {\n \"description\": \"container name\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is podProbeMarker.Name#probe.Name\",\n \"type\": \"string\"\n },\n \"probe\": {\n \"description\": \"container probe spec\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"containerName\",\n \"name\",\n \"probe\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"uid\": {\n \"description\": \"pod uid\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"IP\",\n \"name\",\n \"namespace\",\n \"uid\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Node Pod Probe\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Node Pod Probe", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PersistentPodState.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PersistentPodState.json new file mode 100644 index 00000000000..c92e0b6cbae --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PersistentPodState.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PersistentPodState", + "schema": "{\n \"description\": \"PersistentPodState is the Schema for the PersistentPodState API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"PersistentPodStateSpec defines the desired state of PersistentPodState\",\n \"properties\": {\n \"persistentPodAnnotations\": {\n \"description\": \"Persist the annotations information of the pods that need to be saved\",\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"persistentPodStateRetentionPolicy\": {\n \"description\": \"PersistentPodStateRetentionPolicy describes the policy used for PodState.\\nThe default policy of 'WhenScaled' causes when scale down statefulSet, deleting it.\",\n \"type\": \"string\"\n },\n \"preferredPersistentTopology\": {\n \"description\": \"Pod rebuilt topology preferred for node labels, with xx weight\\nfor example kubernetes.io/hostname, failure-domain.beta.kubernetes.io/zone\",\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"nodeTopologyKeys\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeTopologyKeys\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredPersistentTopology\": {\n \"description\": \"Pod rebuilt topology required for node labels\\nfor example kubernetes.io/hostname, failure-domain.beta.kubernetes.io/zone\",\n \"properties\": {\n \"nodeTopologyKeys\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeTopologyKeys\"\n ],\n \"type\": \"object\"\n },\n \"targetRef\": {\n \"description\": \"TargetReference contains enough information to let you identify an workload for PersistentPodState\\nSelector and TargetReference are mutually exclusive, TargetReference is priority to take effect\\ncurrent only support StatefulSet\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"targetRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Persistent Pod State\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Persistent Pod State", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PodProbeMarker.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PodProbeMarker.json new file mode 100644 index 00000000000..7a3510f47d1 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PodProbeMarker.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PodProbeMarker", + "schema": "{\n \"description\": \"PodProbeMarker is the Schema for the PodProbeMarker API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"PodProbeMarkerSpec defines the desired state of PodProbeMarker\",\n \"properties\": {\n \"probes\": {\n \"description\": \"Custom container probe, current only support Exec().\\nProbe Result will record in Pod.Status.Conditions, and condition.type=probe.name.\\ncondition.status=True indicates probe success\\ncondition.status=False indicates probe fails\",\n \"items\": {\n \"properties\": {\n \"containerName\": {\n \"description\": \"container name\",\n \"type\": \"string\"\n },\n \"markerPolicy\": {\n \"description\": \"According to the execution result of ContainerProbe, perform specific actions,\\nsuch as: patch Pod labels, annotations, ReadinessGate Condition\\nIt cannot be null at the same time as PodConditionType.\",\n \"items\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Patch annotations pod.annotations\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Patch Labels pod.labels\",\n \"type\": \"object\"\n },\n \"state\": {\n \"description\": \"probe status, True or False\\nFor example: State=Succeeded, annotations[controller.kubernetes.io/pod-deletion-cost] = '10'.\\nState=Failed, annotations[controller.kubernetes.io/pod-deletion-cost] = '-10'.\\nIn addition, if State=Failed is not defined, Exec execution fails, and the annotations[controller.kubernetes.io/pod-deletion-cost] will be Deleted\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"state\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"probe name, unique within the Pod(Even between different containers, they cannot be the same)\",\n \"type\": \"string\"\n },\n \"podConditionType\": {\n \"description\": \"If it is not empty, the Probe execution result will be recorded on the Pod condition.\\nIt cannot be null at the same time as MarkerPolicy.\\nFor example PodConditionType=game.kruise.io/healthy, pod.status.condition.type = game.kruise.io/healthy.\\nWhen probe is Succeeded, pod.status.condition.status = True. Otherwise, when the probe fails to execute, pod.status.condition.status = False.\",\n \"type\": \"string\"\n },\n \"probe\": {\n \"description\": \"container probe spec\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the\\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\\na shell, you need to explicitly call out to that shell.\\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded.\\nDefaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest\\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set\\n\\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name.\\nThis will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host.\\nDefaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe.\\nDefault to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed.\\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container.\\nNumber must be in the range 1 to 65535.\\nName must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\\nThe grace period is the duration in seconds after the processes running in the pod are sent\\na termination signal and the time when the processes are forcibly halted with a kill signal.\\nSet this value longer than the expected cleanup time for your process.\\nIf this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\\nvalue overrides the value provided by the pod spec.\\nValue must be non-negative integer. The value zero indicates stop immediately via\\nthe kill signal (no opportunity to shut down).\\nThis is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\\nMinimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out.\\nDefaults to 1 second. Minimum value is 1.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"containerName\",\n \"name\",\n \"probe\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Selector is a label query over pods that should exec custom probe\\nIt must match the pod template's labels.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"probes\",\n \"selector\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Pod Probe Marker\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Pod Probe Marker", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PodUnavailableBudget.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PodUnavailableBudget.json new file mode 100644 index 00000000000..af1784a71ad --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/PodUnavailableBudget.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PodUnavailableBudget", + "schema": "{\n \"description\": \"PodUnavailableBudget is the Schema for the podunavailablebudgets API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"PodUnavailableBudgetSpec defines the desired state of PodUnavailableBudget\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Delete pod, evict pod or update pod specification is allowed if at most \\\"maxUnavailable\\\" pods selected by\\n\\\"selector\\\" or \\\"targetRef\\\" are unavailable after the above operation for pod.\\nMaxUnavailable and MinAvailable are mutually exclusive, MaxUnavailable is priority to take effect\",\n \"x-kubernetes-int-or-string\": true\n },\n \"minAvailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Delete pod, evict pod or update pod specification is allowed if at least \\\"minAvailable\\\" pods selected by\\n\\\"selector\\\" or \\\"targetRef\\\" will still be available after the above operation for pod.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"selector\": {\n \"description\": \"Selector label query over pods managed by the budget\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetRef\": {\n \"description\": \"TargetReference contains enough information to let you identify an workload for PodUnavailableBudget\\nSelector and TargetReference are mutually exclusive, TargetReference is priority to take effect\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Pod Unavailable Budget\",\n \"type\": \"object\"\n}", + "version": "policy.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Pod Unavailable Budget", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ResourceDistribution.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ResourceDistribution.json new file mode 100644 index 00000000000..702be51fdef --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/ResourceDistribution.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ResourceDistribution", + "schema": "{\n \"description\": \"ResourceDistribution is the Schema for the resourcedistributions API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ResourceDistributionSpec defines the desired state of ResourceDistribution.\",\n \"properties\": {\n \"resource\": {\n \"description\": \"Resource must be the complete yaml that users want to distribute.\",\n \"format\": \"textarea\",\n \"type\": \"string\",\n \"x-kubernetes-embedded-resource\": true\n },\n \"targets\": {\n \"description\": \"Targets defines the namespaces that users want to distribute to.\",\n \"properties\": {\n \"allNamespaces\": {\n \"description\": \"If AllNamespaces is true, Resource will be distributed to the all namespaces\\n(except some forbidden namespaces, such as \\\"kube-system\\\" and \\\"kube-public\\\").\",\n \"type\": \"boolean\"\n },\n \"excludedNamespaces\": {\n \"description\": \"If ExcludedNamespaces is not empty, Resource will never be distributed to the listed namespaces.\\nExcludedNamespaces has the highest priority.\",\n \"properties\": {\n \"list\": {\n \"items\": {\n \"description\": \"ResourceDistributionNamespace contains a namespace name\",\n \"properties\": {\n \"name\": {\n \"description\": \"Namespace name\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"includedNamespaces\": {\n \"description\": \"If IncludedNamespaces is not empty, Resource will be distributed to the listed namespaces.\",\n \"properties\": {\n \"list\": {\n \"items\": {\n \"description\": \"ResourceDistributionNamespace contains a namespace name\",\n \"properties\": {\n \"name\": {\n \"description\": \"Namespace name\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceLabelSelector\": {\n \"description\": \"If NamespaceLabelSelector is not empty, Resource will be distributed to the matched namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"resource\",\n \"targets\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Resource Distribution\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Resource Distribution", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/SidecarSet.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/SidecarSet.json new file mode 100644 index 00000000000..14edd4cea73 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/SidecarSet.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "SidecarSet", + "schema": "{\n \"description\": \"SidecarSet is the Schema for the sidecarsets API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"SidecarSetSpec defines the desired state of SidecarSet\",\n \"properties\": {\n \"containers\": {\n \"description\": \"Containers is the list of sidecar containers to be injected into the selected pod\",\n \"items\": {\n \"description\": \"SidecarContainer defines the container of Sidecar\",\n \"format\": \"textarea\",\n \"properties\": {\n \"podInjectPolicy\": {\n \"description\": \"The rules that injected SidecarContainer into Pod.spec.containers,\\nnot takes effect in initContainers\\nIf BeforeAppContainer, the SidecarContainer will be injected in front of the pod.spec.containers\\notherwise it will be injected into the back.\\ndefault BeforeAppContainerType\",\n \"type\": \"string\"\n },\n \"shareVolumePolicy\": {\n \"description\": \"If ShareVolumePolicy is enabled, the sidecar container will share the other container's VolumeMounts\\nin the pod(don't contains the injected sidecar container).\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"transferEnv\": {\n \"description\": \"TransferEnv will transfer env info from other container\\nSourceContainerName is pod.spec.container[x].name; EnvName is pod.spec.container[x].Env.name\",\n \"items\": {\n \"properties\": {\n \"envName\": {\n \"type\": \"string\"\n },\n \"envNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sourceContainerName\": {\n \"type\": \"string\"\n },\n \"sourceContainerNameFrom\": {\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"upgradeStrategy\": {\n \"description\": \"sidecarContainer upgrade strategy, include: ColdUpgrade, HotUpgrade\",\n \"properties\": {\n \"hotUpgradeEmptyImage\": {\n \"description\": \"when HotUpgrade, HotUpgradeEmptyImage is used to complete the hot upgrading process\\nHotUpgradeEmptyImage is consistent of sidecar container in Command, Args, Liveness probe, etc.\\nbut it does no actual work.\",\n \"type\": \"string\"\n },\n \"upgradeType\": {\n \"description\": \"when sidecar container is stateless, use ColdUpgrade\\notherwise HotUpgrade are more HotUpgrade.\\nexamples for istio envoy container is suitable for HotUpgrade\\ndefault is ColdUpgrade\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of the names of secrets required by pulling sidecar container images\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the\\nreferenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\\nTODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers is the list of init containers to be injected into the selected pod\\nWe will inject those containers by their name in ascending order\\nWe only inject init containers when a new pod is created, it does not apply to any existing pod\",\n \"items\": {\n \"description\": \"SidecarContainer defines the container of Sidecar\",\n \"format\": \"textarea\",\n \"properties\": {\n \"podInjectPolicy\": {\n \"description\": \"The rules that injected SidecarContainer into Pod.spec.containers,\\nnot takes effect in initContainers\\nIf BeforeAppContainer, the SidecarContainer will be injected in front of the pod.spec.containers\\notherwise it will be injected into the back.\\ndefault BeforeAppContainerType\",\n \"type\": \"string\"\n },\n \"shareVolumePolicy\": {\n \"description\": \"If ShareVolumePolicy is enabled, the sidecar container will share the other container's VolumeMounts\\nin the pod(don't contains the injected sidecar container).\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"transferEnv\": {\n \"description\": \"TransferEnv will transfer env info from other container\\nSourceContainerName is pod.spec.container[x].name; EnvName is pod.spec.container[x].Env.name\",\n \"items\": {\n \"properties\": {\n \"envName\": {\n \"type\": \"string\"\n },\n \"envNames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sourceContainerName\": {\n \"type\": \"string\"\n },\n \"sourceContainerNameFrom\": {\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`,\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"upgradeStrategy\": {\n \"description\": \"sidecarContainer upgrade strategy, include: ColdUpgrade, HotUpgrade\",\n \"properties\": {\n \"hotUpgradeEmptyImage\": {\n \"description\": \"when HotUpgrade, HotUpgradeEmptyImage is used to complete the hot upgrading process\\nHotUpgradeEmptyImage is consistent of sidecar container in Command, Args, Liveness probe, etc.\\nbut it does no actual work.\",\n \"type\": \"string\"\n },\n \"upgradeType\": {\n \"description\": \"when sidecar container is stateless, use ColdUpgrade\\notherwise HotUpgrade are more HotUpgrade.\\nexamples for istio envoy container is suitable for HotUpgrade\\ndefault is ColdUpgrade\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"injectionStrategy\": {\n \"description\": \"InjectionStrategy describe the strategy when sidecarset is injected into pods\",\n \"properties\": {\n \"paused\": {\n \"description\": \"Paused indicates that SidecarSet will suspend injection into Pods\\nIf Paused is true, the sidecarSet will not be injected to newly created Pods,\\nbut the injected sidecar container remains updating and running.\\ndefault is false\",\n \"type\": \"boolean\"\n },\n \"revision\": {\n \"description\": \"Revision can help users rolling update SidecarSet safely. If users set\\nthis filed, SidecarSet will try to inject specific revision according to\\ndifferent policies.\",\n \"properties\": {\n \"customVersion\": {\n \"description\": \"CustomVersion corresponds to label 'apps.kruise.io/sidecarset-custom-version' of (History) SidecarSet.\\nSidecarSet will select the specific ControllerRevision via this CustomVersion, and then restore the\\nhistory SidecarSet to inject specific version of the sidecar to pods.\",\n \"type\": \"string\"\n },\n \"policy\": {\n \"description\": \"Policy describes the behavior of revision injection.\\nDefaults to Always.\",\n \"type\": \"string\"\n },\n \"revisionName\": {\n \"description\": \"RevisionName corresponds to a specific ControllerRevision name of SidecarSet that you want to inject to Pods.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespace\": {\n \"description\": \"Namespace sidecarSet will only match the pods in the namespace\\notherwise, match pods in all namespaces(in cluster)\",\n \"type\": \"string\"\n },\n \"namespaceSelector\": {\n \"description\": \"NamespaceSelector select which namespaces to inject sidecar containers.\\nDefault to the empty LabelSelector, which matches everything.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"patchPodMetadata\": {\n \"description\": \"SidecarSet support to inject \\u0026 in-place update metadata in pod.\",\n \"items\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"annotations\",\n \"type\": \"object\"\n },\n \"patchPolicy\": {\n \"description\": \"labels map[string]string `json:\\\"labels,omitempty\\\"`\\npatch pod metadata policy, Default is \\\"Retain\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit indicates the maximum quantity of stored revisions about the SidecarSet.\\ndefault value is 10\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over pods that should be injected\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"updateStrategy\": {\n \"description\": \"The sidecarset updateStrategy to use to replace existing pods with new ones.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of SidecarSet pods that can be unavailable during the\\nupdate. Value can be an absolute number (ex: 5) or a percentage of total\\nnumber of SidecarSet pods at the start of the update (ex: 10%). Absolute\\nnumber is calculated from percentage by rounding up.\\nThis cannot be 0.\\nDefault value is 1.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Partition is the desired number of pods in old revisions. It means when partition\\nis set during pods updating, (replicas - partition) number of pods will be updated.\\nDefault value is 0.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"paused\": {\n \"description\": \"Paused indicates that the SidecarSet is paused to update the injected pods,\\nbut it don't affect the webhook inject sidecar container into the newly created pods.\\ndefault is false\",\n \"type\": \"boolean\"\n },\n \"priorityStrategy\": {\n \"description\": \"Priorities are the rules for calculating the priority of updating pods.\\nEach pod to be updated, will pass through these terms and get a sum of weights.\",\n \"properties\": {\n \"orderPriority\": {\n \"description\": \"Order priority terms, pods will be sorted by the value of orderedKey.\\nFor example:\\n```\\norderPriority:\\n- orderedKey: key1\\n- orderedKey: key2\\n```\\nFirst, all pods which have key1 in labels will be sorted by the value of key1.\\nThen, the left pods which have no key1 but have key2 in labels will be sorted by\\nthe value of key2 and put behind those pods have key1.\",\n \"items\": {\n \"description\": \"UpdatePriorityOrderTerm defines order priority.\",\n \"properties\": {\n \"orderedKey\": {\n \"description\": \"Calculate priority by value of this key.\\nValues of this key, will be sorted by GetInt(val). GetInt method will find the last int in value,\\nsuch as getting 5 in value '5', getting 10 in value 'sts-10'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"orderedKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"weightPriority\": {\n \"description\": \"Weight priority terms, pods will be sorted by the sum of all terms weight.\",\n \"items\": {\n \"description\": \"UpdatePriorityWeightTerm defines weight priority.\",\n \"properties\": {\n \"matchSelector\": {\n \"description\": \"MatchSelector is used to select by pod's labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding matchExpressions, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"matchSelector\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"scatterStrategy\": {\n \"description\": \"ScatterStrategy defines the scatter rules to make pods been scattered when update.\\nThis will avoid pods with the same key-value to be updated in one batch.\\n- Note that pods will be scattered after priority sort. So, although priority strategy and scatter strategy can be applied together, we suggest to use either one of them.\\n- If scatterStrategy is used, we suggest to just use one term. Otherwise, the update order can be hard to understand.\",\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"If selector is not nil, this upgrade will only update the selected pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": {\n \"description\": \"Type is NotUpdate, the SidecarSet don't update the injected pods,\\nit will only inject sidecar container into the newly created pods.\\nType is RollingUpdate, the SidecarSet will update the injected pods to the latest version on RollingUpdate Strategy.\\ndefault is RollingUpdate\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumes\": {\n \"description\": \"List of volumes that can be mounted by sidecar containers\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Sidecar Set\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Sidecar Set", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/StatefulSet.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/StatefulSet.json new file mode 100644 index 00000000000..6ca0b869500 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/StatefulSet.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "StatefulSet", + "schema": "{\n \"description\": \"StatefulSet is the Schema for the statefulsets API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"StatefulSetSpec defines the desired state of StatefulSet\",\n \"properties\": {\n \"podManagementPolicy\": {\n \"description\": \"podManagementPolicy controls how pods are created during initial scale up,\\nwhen replacing pods on nodes, or when scaling down. The default policy is\\n`OrderedReady`, where pods are created in increasing order (pod-0, then\\npod-1, etc) and the controller will wait until each pod is ready before\\ncontinuing. When scaling down, the pods are removed in the opposite order.\\nThe alternative policy is `Parallel` which will create pods in parallel\\nto match the desired scale without waiting, and on scale down will delete\\nall pods at once.\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"replicas is the desired number of replicas of the given Template.\\nThese are replicas in the sense that they are instantiations of the\\nsame Template, but individual replicas also have a consistent identity.\\nIf unspecified, defaults to 1.\\nTODO: Consider a rename of this field.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"revisionHistoryLimit is the maximum number of revisions that will\\nbe maintained in the StatefulSet's revision history. The revision history\\nconsists of all revisions not represented by a currently applied\\nStatefulSetSpec version. The default value is 10.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over pods that should match the replica count.\\nIt must match the pod template's labels.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceName\": {\n \"description\": \"serviceName is the name of the service that governs this StatefulSet.\\nThis service must exist before the StatefulSet, and is responsible for\\nthe network identity of the set. Pods get DNS/hostnames that follow the\\npattern: pod-specific-string.serviceName.default.svc.cluster.local\\nwhere \\\"pod-specific-string\\\" is managed by the StatefulSet controller.\",\n \"type\": \"string\"\n },\n \"template\": {\n \"description\": \"template is the object that describes the pod that will be created if\\ninsufficient replicas are detected. Each pod stamped out by the StatefulSet\\nwill fulfill this Template, but have a unique identity from the rest\\nof the StatefulSet.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"updateStrategy\": {\n \"description\": \"updateStrategy indicates the StatefulSetUpdateStrategy that will be\\nemployed to update Pods in the StatefulSet when a revision is made to\\nTemplate.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n \"properties\": {\n \"inPlaceUpdateStrategy\": {\n \"description\": \"InPlaceUpdateStrategy contains strategies for in-place update.\",\n \"properties\": {\n \"gracePeriodSeconds\": {\n \"description\": \"GracePeriodSeconds is the timespan between set Pod status to not-ready and update images in Pod spec\\nwhen in-place update a Pod.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding down.\\nAlso, maxUnavailable can just be allowed to work with Parallel podManagementPolicy.\\nDefaults to 1.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"minReadySeconds\": {\n \"description\": \"MinReadySeconds indicates how long will the pod be considered ready after it's updated.\\nMinReadySeconds works with both OrderedReady and Parallel podManagementPolicy.\\nIt affects the pod scale up speed when the podManagementPolicy is set to be OrderedReady.\\nCombined with MaxUnavailable, it affects the pod update speed regardless of podManagementPolicy.\\nDefault value is 0, max is 300.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"partition\": {\n \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned by default.\\nBut if unorderedUpdate has been set:\\n - Partition indicates the number of pods with non-updated revisions when rolling update.\\n - It means controller will update $(replicas - partition) number of pod.\\nDefault value is 0.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"paused\": {\n \"description\": \"Paused indicates that the StatefulSet is paused.\\nDefault value is false\",\n \"type\": \"boolean\"\n },\n \"podUpdatePolicy\": {\n \"description\": \"PodUpdatePolicy indicates how pods should be updated\\nDefault value is \\\"ReCreate\\\"\",\n \"type\": \"string\"\n },\n \"unorderedUpdate\": {\n \"description\": \"UnorderedUpdate contains strategies for non-ordered update.\\nIf it is not nil, pods will be updated with non-ordered sequence.\\nNoted that UnorderedUpdate can only be allowed to work with Parallel podManagementPolicy\",\n \"properties\": {\n \"priorityStrategy\": {\n \"description\": \"Priorities are the rules for calculating the priority of updating pods.\\nEach pod to be updated, will pass through these terms and get a sum of weights.\",\n \"properties\": {\n \"orderPriority\": {\n \"description\": \"Order priority terms, pods will be sorted by the value of orderedKey.\\nFor example:\\n```\\norderPriority:\\n- orderedKey: key1\\n- orderedKey: key2\\n```\\nFirst, all pods which have key1 in labels will be sorted by the value of key1.\\nThen, the left pods which have no key1 but have key2 in labels will be sorted by\\nthe value of key2 and put behind those pods have key1.\",\n \"items\": {\n \"description\": \"UpdatePriorityOrderTerm defines order priority.\",\n \"properties\": {\n \"orderedKey\": {\n \"description\": \"Calculate priority by value of this key.\\nValues of this key, will be sorted by GetInt(val). GetInt method will find the last int in value,\\nsuch as getting 5 in value '5', getting 10 in value 'sts-10'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"orderedKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"weightPriority\": {\n \"description\": \"Weight priority terms, pods will be sorted by the sum of all terms weight.\",\n \"items\": {\n \"description\": \"UpdatePriorityWeightTerm defines weight priority.\",\n \"properties\": {\n \"matchSelector\": {\n \"description\": \"MatchSelector is used to select by pod's labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding matchExpressions, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"matchSelector\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy.\\nDefault is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"volumeClaimTemplates is a list of claims that pods are allowed to reference.\\nThe StatefulSet controller is responsible for mapping network identities to\\nclaims in a way that maintains the identity of a pod. Every claim in\\nthis list must have at least one matching (by name) volumeMount in one\\ncontainer in the template. A claim in this list takes precedence over\\nany volumes in the template, with the same name.\\nTODO: Define the behavior if a claim already exists with the same name.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"selector\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Stateful Set\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Stateful Set", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/UnitedDeployment.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/UnitedDeployment.json new file mode 100644 index 00000000000..b6416d1f808 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/UnitedDeployment.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "UnitedDeployment", + "schema": "{\n \"description\": \"UnitedDeployment is the Schema for the uniteddeployments API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"UnitedDeploymentSpec defines the desired state of UnitedDeployment.\",\n \"properties\": {\n \"replicas\": {\n \"description\": \"Replicas is the total desired replicas of all the subsets.\\nIf unspecified, defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"Indicates the number of histories to be conserved.\\nIf unspecified, defaults to 10.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"selector\": {\n \"description\": \"Selector is a label query over pods that should match the replica count.\\nIt must match the pod template's labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"template\": {\n \"description\": \"Template describes the subset that will be created.\",\n \"properties\": {\n \"advancedStatefulSetTemplate\": {\n \"description\": \"AdvancedStatefulSet template\",\n \"properties\": {\n \"metadata\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"StatefulSetSpec defines the desired state of StatefulSet\",\n \"properties\": {\n \"lifecycle\": {\n \"description\": \"Lifecycle defines the lifecycle hooks for Pods pre-delete, in-place update.\",\n \"properties\": {\n \"inPlaceUpdate\": {\n \"description\": \"InPlaceUpdate is the hook before Pod to update and after Pod has been updated.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"preDelete\": {\n \"description\": \"PreDelete is the hook before Pod to be deleted.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"preNormal\": {\n \"description\": \"PreNormal is the hook after Pod to be created and ready to be Normal.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"ordinals\": {\n \"description\": \"ordinals controls the numbering of replica indices in a StatefulSet. The\\ndefault ordinals behavior assigns a \\\"0\\\" index to the first replica and\\nincrements the index by one for each additional replica requested. Using\\nthe ordinals field requires the StatefulSetStartOrdinal feature gate to be\\nenabled, which is beta.\",\n \"properties\": {\n \"start\": {\n \"description\": \"start is the number representing the first replica's index. It may be used\\nto number replicas from an alternate index (eg: 1-indexed) over the default\\n0-indexed names, or to orchestrate progressive movement of replicas from\\none StatefulSet to another.\\nIf set, replica indices will be in the range:\\n [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n [0, .spec.replicas).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeClaimRetentionPolicy\": {\n \"description\": \"PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\\nthe StatefulSet VolumeClaimTemplates. This requires the\\nStatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.\",\n \"properties\": {\n \"whenDeleted\": {\n \"description\": \"WhenDeleted specifies what happens to PVCs created from StatefulSet\\nVolumeClaimTemplates when the StatefulSet is deleted. The default policy\\nof `Retain` causes PVCs to not be affected by StatefulSet deletion. The\\n`Delete` policy causes those PVCs to be deleted.\",\n \"type\": \"string\"\n },\n \"whenScaled\": {\n \"description\": \"WhenScaled specifies what happens to PVCs created from StatefulSet\\nVolumeClaimTemplates when the StatefulSet is scaled down. The default\\npolicy of `Retain` causes PVCs to not be affected by a scaledown. The\\n`Delete` policy causes the associated PVCs for any excess pods above\\nthe replica count to be deleted.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"podManagementPolicy\": {\n \"description\": \"podManagementPolicy controls how pods are created during initial scale up,\\nwhen replacing pods on nodes, or when scaling down. The default policy is\\n`OrderedReady`, where pods are created in increasing order (pod-0, then\\npod-1, etc) and the controller will wait until each pod is ready before\\ncontinuing. When scaling down, the pods are removed in the opposite order.\\nThe alternative policy is `Parallel` which will create pods in parallel\\nto match the desired scale without waiting, and on scale down will delete\\nall pods at once.\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"replicas is the desired number of replicas of the given Template.\\nThese are replicas in the sense that they are instantiations of the\\nsame Template, but individual replicas also have a consistent identity.\\nIf unspecified, defaults to 1.\\nTODO: Consider a rename of this field.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"reserveOrdinals\": {\n \"description\": \"reserveOrdinals controls the ordinal numbers that should be reserved, and the replicas\\nwill always be the expectation number of running Pods.\\nFor a sts with replicas=3 and its Pods in [0, 1, 2]:\\n- If you want to migrate Pod-1 and reserve this ordinal, just set spec.reserveOrdinal to [1].\\n Then controller will delete Pod-1 and create Pod-3 (existing Pods will be [0, 2, 3])\\n- If you just want to delete Pod-1, you should set spec.reserveOrdinal to [1] and spec.replicas to 2.\\n Then controller will delete Pod-1 (existing Pods will be [0, 2])\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"revisionHistoryLimit is the maximum number of revisions that will\\nbe maintained in the StatefulSet's revision history. The revision history\\nconsists of all revisions not represented by a currently applied\\nStatefulSetSpec version. The default value is 10.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"scaleStrategy\": {\n \"description\": \"scaleStrategy indicates the StatefulSetScaleStrategy that will be\\nemployed to scale Pods in the StatefulSet.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during scaling.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding down.\\nIt can just be allowed to work with Parallel podManagementPolicy.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over pods that should match the replica count.\\nIt must match the pod template's labels.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceName\": {\n \"description\": \"serviceName is the name of the service that governs this StatefulSet.\\nThis service must exist before the StatefulSet, and is responsible for\\nthe network identity of the set. Pods get DNS/hostnames that follow the\\npattern: pod-specific-string.serviceName.default.svc.cluster.local\\nwhere \\\"pod-specific-string\\\" is managed by the StatefulSet controller.\",\n \"type\": \"string\"\n },\n \"template\": {\n \"description\": \"template is the object that describes the pod that will be created if\\ninsufficient replicas are detected. Each pod stamped out by the StatefulSet\\nwill fulfill this Template, but have a unique identity from the rest\\nof the StatefulSet.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"updateStrategy\": {\n \"description\": \"updateStrategy indicates the StatefulSetUpdateStrategy that will be\\nemployed to update Pods in the StatefulSet when a revision is made to\\nTemplate.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n \"properties\": {\n \"inPlaceUpdateStrategy\": {\n \"description\": \"InPlaceUpdateStrategy contains strategies for in-place update.\",\n \"properties\": {\n \"gracePeriodSeconds\": {\n \"description\": \"GracePeriodSeconds is the timespan between set Pod status to not-ready and update images in Pod spec\\nwhen in-place update a Pod.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding down.\\nAlso, maxUnavailable can just be allowed to work with Parallel podManagementPolicy.\\nDefaults to 1.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"minReadySeconds\": {\n \"description\": \"MinReadySeconds indicates how long will the pod be considered ready after it's updated.\\nMinReadySeconds works with both OrderedReady and Parallel podManagementPolicy.\\nIt affects the pod scale up speed when the podManagementPolicy is set to be OrderedReady.\\nCombined with MaxUnavailable, it affects the pod update speed regardless of podManagementPolicy.\\nDefault value is 0, max is 300.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"partition\": {\n \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned by default.\\nBut if unorderedUpdate has been set:\\n - Partition indicates the number of pods with non-updated revisions when rolling update.\\n - It means controller will update $(replicas - partition) number of pod.\\nDefault value is 0.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"paused\": {\n \"description\": \"Paused indicates that the StatefulSet is paused.\\nDefault value is false\",\n \"type\": \"boolean\"\n },\n \"podUpdatePolicy\": {\n \"description\": \"PodUpdatePolicy indicates how pods should be updated\\nDefault value is \\\"ReCreate\\\"\",\n \"type\": \"string\"\n },\n \"unorderedUpdate\": {\n \"description\": \"UnorderedUpdate contains strategies for non-ordered update.\\nIf it is not nil, pods will be updated with non-ordered sequence.\\nNoted that UnorderedUpdate can only be allowed to work with Parallel podManagementPolicy\",\n \"properties\": {\n \"priorityStrategy\": {\n \"description\": \"Priorities are the rules for calculating the priority of updating pods.\\nEach pod to be updated, will pass through these terms and get a sum of weights.\",\n \"properties\": {\n \"orderPriority\": {\n \"description\": \"Order priority terms, pods will be sorted by the value of orderedKey.\\nFor example:\\n```\\norderPriority:\\n- orderedKey: key1\\n- orderedKey: key2\\n```\\nFirst, all pods which have key1 in labels will be sorted by the value of key1.\\nThen, the left pods which have no key1 but have key2 in labels will be sorted by\\nthe value of key2 and put behind those pods have key1.\",\n \"items\": {\n \"description\": \"UpdatePriorityOrderTerm defines order priority.\",\n \"properties\": {\n \"orderedKey\": {\n \"description\": \"Calculate priority by value of this key.\\nValues of this key, will be sorted by GetInt(val). GetInt method will find the last int in value,\\nsuch as getting 5 in value '5', getting 10 in value 'sts-10'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"orderedKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"weightPriority\": {\n \"description\": \"Weight priority terms, pods will be sorted by the sum of all terms weight.\",\n \"items\": {\n \"description\": \"UpdatePriorityWeightTerm defines weight priority.\",\n \"properties\": {\n \"matchSelector\": {\n \"description\": \"MatchSelector is used to select by pod's labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding matchExpressions, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"matchSelector\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy.\\nDefault is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"volumeClaimTemplates is a list of claims that pods are allowed to reference.\\nThe StatefulSet controller is responsible for mapping network identities to\\nclaims in a way that maintains the identity of a pod. Every claim in\\nthis list must have at least one matching (by name) volumeMount in one\\ncontainer in the template. A claim in this list takes precedence over\\nany volumes in the template, with the same name.\\nTODO: Define the behavior if a claim already exists with the same name.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"selector\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n },\n \"cloneSetTemplate\": {\n \"description\": \"CloneSet template\",\n \"properties\": {\n \"metadata\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"CloneSetSpec defines the desired state of CloneSet\",\n \"properties\": {\n \"lifecycle\": {\n \"description\": \"Lifecycle defines the lifecycle hooks for Pods pre-available(pre-normal), pre-delete, in-place update.\",\n \"properties\": {\n \"inPlaceUpdate\": {\n \"description\": \"InPlaceUpdate is the hook before Pod to update and after Pod has been updated.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"preDelete\": {\n \"description\": \"PreDelete is the hook before Pod to be deleted.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"preNormal\": {\n \"description\": \"PreNormal is the hook after Pod to be created and ready to be Normal.\",\n \"properties\": {\n \"finalizersHandler\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labelsHandler\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"markPodNotReady\": {\n \"description\": \"MarkPodNotReady = true means:\\n- Pod will be set to 'NotReady' at preparingDelete/preparingUpdate state.\\n- Pod will be restored to 'Ready' at Updated state if it was set to 'NotReady' at preparingUpdate state.\\nCurrently, MarkPodNotReady only takes effect on InPlaceUpdate \\u0026 PreDelete hook.\\nDefault to false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"minReadySeconds\": {\n \"description\": \"Minimum number of seconds for which a newly created pod should be ready\\nwithout any of its container crashing, for it to be considered available.\\nDefaults to 0 (pod will be considered available as soon as it is ready)\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"replicas\": {\n \"description\": \"Replicas is the desired number of replicas of the given Template.\\nThese are replicas in the sense that they are instantiations of the\\nsame Template.\\nIf unspecified, defaults to 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"revisionHistoryLimit\": {\n \"description\": \"RevisionHistoryLimit is the maximum number of revisions that will\\nbe maintained in the CloneSet's revision history. The revision history\\nconsists of all revisions not represented by a currently applied\\nCloneSetSpec version. The default value is 10.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"scaleStrategy\": {\n \"description\": \"ScaleStrategy indicates the ScaleStrategy that will be employed to\\ncreate and delete Pods in the CloneSet.\",\n \"properties\": {\n \"disablePVCReuse\": {\n \"description\": \"Indicate if cloneSet will reuse already existed pvc to\\nrebuild a new pod\",\n \"type\": \"boolean\"\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable for scaled pods.\\nThis field can control the changes rate of replicas for CloneSet so as to minimize the impact for users' service.\\nThe scale will fail if the number of unavailable pods were greater than this MaxUnavailable at scaling up.\\nMaxUnavailable works only when scaling up.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"podsToDelete\": {\n \"description\": \"PodsToDelete is the names of Pod should be deleted.\\nNote that this list will be truncated for non-existing pod names.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"Selector is a label query over pods that should match the replica count.\\nIt must match the pod template's labels.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"template\": {\n \"description\": \"Template describes the pods that will be created.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"updateStrategy\": {\n \"description\": \"UpdateStrategy indicates the UpdateStrategy that will be employed to\\nupdate Pods in the CloneSet when a revision is made to Template.\",\n \"properties\": {\n \"inPlaceUpdateStrategy\": {\n \"description\": \"InPlaceUpdateStrategy contains strategies for in-place update.\",\n \"properties\": {\n \"gracePeriodSeconds\": {\n \"description\": \"GracePeriodSeconds is the timespan between set Pod status to not-ready and update images in Pod spec\\nwhen in-place update a Pod.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSurge\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be scheduled above the desired replicas during update or specified delete.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding up.\\nDefaults to 0.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during update or scale.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding up by default.\\nWhen maxSurge \\u003e 0, absolute number is calculated from percentage by rounding down.\\nDefaults to 20%.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Partition is the desired number of pods in old revisions.\\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\\nAbsolute number is calculated from percentage by rounding up by default.\\nIt means when partition is set during pods updating, (replicas - partition value) number of pods will be updated.\\nDefault value is 0.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"paused\": {\n \"description\": \"Paused indicates that the CloneSet is paused.\\nDefault value is false\",\n \"type\": \"boolean\"\n },\n \"priorityStrategy\": {\n \"description\": \"Priorities are the rules for calculating the priority of updating pods.\\nEach pod to be updated, will pass through these terms and get a sum of weights.\",\n \"properties\": {\n \"orderPriority\": {\n \"description\": \"Order priority terms, pods will be sorted by the value of orderedKey.\\nFor example:\\n```\\norderPriority:\\n- orderedKey: key1\\n- orderedKey: key2\\n```\\nFirst, all pods which have key1 in labels will be sorted by the value of key1.\\nThen, the left pods which have no key1 but have key2 in labels will be sorted by\\nthe value of key2 and put behind those pods have key1.\",\n \"items\": {\n \"description\": \"UpdatePriorityOrderTerm defines order priority.\",\n \"properties\": {\n \"orderedKey\": {\n \"description\": \"Calculate priority by value of this key.\\nValues of this key, will be sorted by GetInt(val). GetInt method will find the last int in value,\\nsuch as getting 5 in value '5', getting 10 in value 'sts-10'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"orderedKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"weightPriority\": {\n \"description\": \"Weight priority terms, pods will be sorted by the sum of all terms weight.\",\n \"items\": {\n \"description\": \"UpdatePriorityWeightTerm defines weight priority.\",\n \"properties\": {\n \"matchSelector\": {\n \"description\": \"MatchSelector is used to select by pod's labels.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that\\nrelates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. This array is replaced during a strategic\\nmerge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\\nmap is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the\\noperator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding matchExpressions, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"matchSelector\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"scatterStrategy\": {\n \"description\": \"ScatterStrategy defines the scatter rules to make pods been scattered when update.\\nThis will avoid pods with the same key-value to be updated in one batch.\\n- Note that pods will be scattered after priority sort. So, although priority strategy and scatter strategy can be applied together, we suggest to use either one of them.\\n- If scatterStrategy is used, we suggest to just use one term. Otherwise, the update order can be hard to understand.\",\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the CloneSetUpdateStrategy.\\nDefault is ReCreate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeClaimTemplates\": {\n \"description\": \"VolumeClaimTemplates is a list of claims that pods are allowed to reference.\\nNote that PVC will be deleted when its pod has been deleted.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"selector\",\n \"template\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n },\n \"deploymentTemplate\": {\n \"description\": \"Deployment template\",\n \"properties\": {\n \"metadata\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n },\n \"statefulSetTemplate\": {\n \"description\": \"StatefulSet template\",\n \"properties\": {\n \"metadata\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"spec\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"topology\": {\n \"description\": \"Topology describes the pods distribution detail between each of subsets.\",\n \"properties\": {\n \"subsets\": {\n \"description\": \"Contains the details of each subset. Each element in this array represents one subset\\nwhich will be provisioned and managed by UnitedDeployment.\",\n \"items\": {\n \"description\": \"Subset defines the detail of a subset.\",\n \"properties\": {\n \"maxReplicas\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Indicates the upper bounded replicas of the subset.\\nMaxReplicas must be more than or equal to MinReplicas.\\nMaxReplicas == nil means no limitation.\\nPlease ensure that at least one subset has empty MaxReplicas(no limitation) to avoid stuck scaling.\\nDefaults to nil.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"minReplicas\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Indicates the lower bounded replicas of the subset.\\nMinReplicas must be more than or equal to 0 if it is set.\\nController will prioritize satisfy minReplicas for each subset\\naccording to the order of Topology.Subsets.\\nDefaults to 0.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"name\": {\n \"description\": \"Indicates subset name as a DNS_LABEL, which will be used to generate\\nsubset workload name prefix in the format '\\u003cdeployment-name\\u003e-\\u003csubset-name\\u003e-'.\\nName should be unique between all of the subsets under one UnitedDeployment.\",\n \"type\": \"string\"\n },\n \"nodeSelectorTerm\": {\n \"description\": \"Indicates the node selector to form the subset. Depending on the node selector,\\npods provisioned could be distributed across multiple groups of nodes.\\nA subset's nodeSelectorTerm is not allowed to be updated.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"patch\": {\n \"description\": \"Patch indicates patching to the templateSpec.\\nPatch takes precedence over other fields\\nIf the Patch also modifies the Replicas, NodeSelectorTerm or Tolerations, use value in the Patch\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Indicates the number of the pod to be created under this subset. Replicas could also be\\npercentage like '10%', which means 10% of UnitedDeployment replicas of pods will be distributed\\nunder this subset. If nil, the number of replicas in this subset is determined by controller.\\nController will try to keep all the subsets with nil replicas have average pods.\\nReplicas and MinReplicas/MaxReplicas are mutually exclusive in a UnitedDeployment.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"tolerations\": {\n \"description\": \"Indicates the tolerations the pods under this subset have.\\nA subset's tolerations is not allowed to be updated.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"updateStrategy\": {\n \"description\": \"UpdateStrategy indicates the strategy the UnitedDeployment use to preform the update,\\nwhen template is changed.\",\n \"properties\": {\n \"manualUpdate\": {\n \"description\": \"Includes all of the parameters a Manual update strategy needs.\",\n \"properties\": {\n \"partitions\": {\n \"additionalProperties\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"description\": \"Indicates number of subset partition.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type of UnitedDeployment update strategy.\\nDefault is Manual.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"selector\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"United Deployment\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "United Deployment", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/WorkloadSpread.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/WorkloadSpread.json new file mode 100644 index 00000000000..3d67fac4050 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/components/WorkloadSpread.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "WorkloadSpread", + "schema": "{\n \"description\": \"WorkloadSpread is the Schema for the WorkloadSpread API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"WorkloadSpreadSpec defines the desired state of WorkloadSpread.\",\n \"properties\": {\n \"scheduleStrategy\": {\n \"description\": \"ScheduleStrategy indicates the strategy the WorkloadSpread used to preform the schedule between each of subsets.\",\n \"properties\": {\n \"adaptive\": {\n \"description\": \"Adaptive is used to communicate parameters when Type is AdaptiveWorkloadSpreadScheduleStrategyType.\",\n \"properties\": {\n \"disableSimulationSchedule\": {\n \"description\": \"DisableSimulationSchedule indicates whether to disable the feature of simulation schedule.\\nDefault is false.\\nWebhook can take a simple general predicates to check whether Pod can be scheduled into this subset,\\nbut it just considers the Node resource and cannot replace scheduler to do richer predicates practically.\",\n \"type\": \"boolean\"\n },\n \"rescheduleCriticalSeconds\": {\n \"description\": \"RescheduleCriticalSeconds indicates how long controller will reschedule a schedule failed Pod to the subset that has\\nredundant capacity after the subset where the Pod lives. If a Pod was scheduled failed and still in a unschedulabe status\\nover RescheduleCriticalSeconds duration, the controller will reschedule it to a suitable subset.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the WorkloadSpreadScheduleStrategy.\\nDefault is Fixed\",\n \"enum\": [\n \"Adaptive\",\n \"Fixed\",\n \"\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"subsets\": {\n \"description\": \"Subsets describes the pods distribution details between each of subsets.\",\n \"items\": {\n \"description\": \"WorkloadSpreadSubset defines the details of a subset.\",\n \"properties\": {\n \"maxReplicas\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"MaxReplicas indicates the desired max replicas of this subset.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"name\": {\n \"description\": \"Name should be unique between all of the subsets under one WorkloadSpread.\",\n \"type\": \"string\"\n },\n \"patch\": {\n \"description\": \"Patch indicates patching podTemplate to the Pod.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"preferredNodeSelectorTerms\": {\n \"description\": \"Indicates the node preferred selector to form the subset.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0\\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredNodeSelectorTerm\": {\n \"description\": \"Indicates the node required selector to form the subset.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator\\nthat relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values.\\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn,\\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\\nthe values array must be empty. If the operator is Gt or Lt, the values\\narray must have a single element, which will be interpreted as an integer.\\nThis array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"tolerations\": {\n \"description\": \"Indicates the tolerations the pods under this subset have.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches\\nthe triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects.\\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys.\\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value.\\nValid operators are Exists and Equal. Defaults to Equal.\\nExists is equivalent to wildcard for value, so that a pod can\\ntolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be\\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\\nit is not set, which means tolerate the taint forever (do not evict). Zero and\\nnegative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to.\\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"targetRef\": {\n \"description\": \"TargetReference is the target workload that WorkloadSpread want to control.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"subsets\",\n \"targetRef\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Workload Spread\",\n \"type\": \"object\"\n}", + "version": "apps.kruise.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Workload Spread", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "source_uri": "git://github.com/openkruise/kruise/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0071ff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#009bff\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#0050fa\"/\u003e\u003cstop offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"/\u003e\u003c/linearGradient\u003e\u003clinearGradient id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#00a0dc\"/\u003e\u003cstop offset=\"1\" stop-color=\"#3cfaff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"/\u003e\u003cstop offset=\"1\" stop-color=\"#fff\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003eopenkruise\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/openkruise/v1.7.0/v1.0.0/model.json b/server/meshmodel/openkruise/v1.7.0/v1.0.0/model.json new file mode 100644 index 00000000000..82368d8ea02 --- /dev/null +++ b/server/meshmodel/openkruise/v1.7.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "App Definition and Development" + }, + "displayName": "Openkruise", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#0090ff", + "secondaryColor": "#1a9bff", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_60);}.cls-2{fill:url(#未命名的渐变_89);}.cls-3{fill:url(#未命名的渐变_43);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_60\" x1=\"28.35\" y1=\"54.33\" x2=\"28.35\" y2=\"2\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0071ff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#009bff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_89\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#0050fa\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#00a0ff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_43\" x1=\"35.73\" y1=\"41.11\" x2=\"35.73\" y2=\"7.93\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#00a0dc\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#3cfaff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2Zm0,35.46a9.3,9.3,0,1,1,9.29-9.3A9.3,9.3,0,0,1,28.36,37.46Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81l0,0A9.25,9.25,0,0,1,27.6,18.91,16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M49,16.23a16.57,16.57,0,0,0-20.67-7,14.38,14.38,0,0,1,2,1A16.58,16.58,0,0,1,36.4,32.81,6.86,6.86,0,0,1,35.58,34a9.22,9.22,0,0,1-15.37-1.36,1.45,1.45,0,0,0,.09.22A16.58,16.58,0,0,0,49,16.23Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56.69 56.69\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1,.cls-2{fill:#fff;}.cls-2{opacity:0.7;}.cls-3{fill:url(#未命名的渐变_5);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_5\" x1=\"11.77\" y1=\"35.48\" x2=\"44.79\" y2=\"35.48\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eopenkruise\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M28.35,2A26.17,26.17,0,1,0,54.51,28.16,26.17,26.17,0,0,0,28.35,2ZM44.79,37.64A16.58,16.58,0,1,1,27.27,18.91a7.83,7.83,0,0,1,1.09,0,9.28,9.28,0,0,1,8.51,13,16.56,16.56,0,0,0-6.55-21.72,14.38,14.38,0,0,0-2-1A16.58,16.58,0,0,1,44.79,37.64Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M49,16.16a16.53,16.53,0,0,0-20.69-7,14.38,14.38,0,0,1,2,1A16.54,16.54,0,0,1,36.4,32.79a6.21,6.21,0,0,1-.81,1.13A9.21,9.21,0,0,1,20.2,32.56a2.18,2.18,0,0,0,.09.23A16.61,16.61,0,1,0,49,16.16Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M43,38.88A16.58,16.58,0,0,1,20.3,32.81s0,0,0,0a9.28,9.28,0,0,1,7.3-13.9A16.57,16.57,0,1,0,44.79,37.64,15.58,15.58,0,0,1,43,38.88Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.7.0" + }, + "name": "openkruise", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Continuous Integration \u0026 Delivery", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/operator framework/v0.13.0/v1.0.0/components/ClusterExtension.json b/server/meshmodel/operator framework/v0.13.0/v1.0.0/components/ClusterExtension.json new file mode 100644 index 00000000000..6cb328f55af --- /dev/null +++ b/server/meshmodel/operator framework/v0.13.0/v1.0.0/components/ClusterExtension.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ClusterExtension", + "schema": "{\n \"description\": \"ClusterExtension is the Schema for the clusterextensions API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ClusterExtensionSpec defines the desired state of ClusterExtension\",\n \"properties\": {\n \"channel\": {\n \"description\": \"Channel constraint definition\",\n \"maxLength\": 48,\n \"pattern\": \"^[a-z0-9]+([\\\\.-][a-z0-9]+)*$\",\n \"type\": \"string\"\n },\n \"installNamespace\": {\n \"description\": \"installNamespace is the namespace where the bundle should be installed. However, note that\\nthe bundle may contain resources that are cluster-scoped or that are\\ninstalled in a different namespace. This namespace is expected to exist.\",\n \"maxLength\": 63,\n \"pattern\": \"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$\",\n \"type\": \"string\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"installNamespace is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n },\n \"packageName\": {\n \"maxLength\": 48,\n \"pattern\": \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n \"type\": \"string\"\n },\n \"preflight\": {\n \"description\": \"Preflight defines the configuration of preflight checks.\",\n \"properties\": {\n \"crdUpgradeSafety\": {\n \"description\": \"CRDUpgradeSafety holds necessary configuration for the CRD Upgrade Safety preflight checks.\",\n \"properties\": {\n \"disabled\": {\n \"description\": \"Disabled represents the state of the CRD upgrade safety preflight check being disabled/enabled.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"ServiceAccount is used to install and manage resources.\\nThe service account is expected to exist in the InstallNamespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is the metadata.name of the referenced serviceAccount object.\",\n \"maxLength\": 253,\n \"pattern\": \"^[a-z0-9]+([.|-][a-z0-9]+)*$\",\n \"type\": \"string\",\n \"x-kubernetes-validations\": [\n {\n \"message\": \"name is immutable\",\n \"rule\": \"self == oldSelf\"\n }\n ]\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"upgradeConstraintPolicy\": {\n \"default\": \"Enforce\",\n \"description\": \"Defines the policy for how to handle upgrade constraints\",\n \"enum\": [\n \"Enforce\",\n \"Ignore\"\n ],\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version is an optional semver constraint on the package version. If not specified, the latest version available of the package will be installed.\\nIf specified, the specific version of the package will be installed so long as it is available in any of the content sources available.\\nExamples: 1.2.3, 1.0.0-alpha, 1.0.0-rc.1\\n\\n\\nFor more information on semver, please see https://semver.org/\",\n \"maxLength\": 64,\n \"pattern\": \"^(\\\\s*(=||!=|\\u003e|\\u003c|\\u003e=|=\\u003e|\\u003c=|=\\u003c|~|~\\u003e|\\\\^)\\\\s*(v?(0|[1-9]\\\\d*|[x|X|\\\\*])(\\\\.(0|[1-9]\\\\d*|x|X|\\\\*]))?(\\\\.(0|[1-9]\\\\d*|x|X|\\\\*))?(-([0-9A-Za-z\\\\-]+(\\\\.[0-9A-Za-z\\\\-]+)*))?(\\\\+([0-9A-Za-z\\\\-]+(\\\\.[0-9A-Za-z\\\\-]+)*))?)\\\\s*)((?:\\\\s+|,\\\\s*|\\\\s*\\\\|\\\\|\\\\s*)(=||!=|\\u003e|\\u003c|\\u003e=|=\\u003e|\\u003c=|=\\u003c|~|~\\u003e|\\\\^)\\\\s*(v?(0|[1-9]\\\\d*|x|X|\\\\*])(\\\\.(0|[1-9]\\\\d*|x|X|\\\\*))?(\\\\.(0|[1-9]\\\\d*|x|X|\\\\*]))?(-([0-9A-Za-z\\\\-]+(\\\\.[0-9A-Za-z\\\\-]+)*))?(\\\\+([0-9A-Za-z\\\\-]+(\\\\.[0-9A-Za-z\\\\-]+)*))?)\\\\s*)*$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"installNamespace\",\n \"packageName\",\n \"serviceAccount\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Cluster Extension\",\n \"type\": \"object\"\n}", + "version": "olm.operatorframework.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Cluster Extension", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/operator-framework/operator-controller/main/config/base/crd/bases" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Operator Framework", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#cc0000", + "secondaryColor": "#FF4545\n", + "shape": "circle", + "source_uri": "git://github.com/operator-framework/operator-controller/main/config/base/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#c00;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Page-1\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Fill-1\" class=\"cls-1\" d=\"M179.432,5.88043A173.22942,173.22942,0,1,1,6.20259,179.10984,173.22942,173.22942,0,0,1,179.432,5.88043\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Fill-5\" class=\"cls-2\" d=\"M77.65462,205.60375,218.48,26.26036c3.13849,6.1955,0,9.70085-1.22281,13.41-12.7986,35.09424-25.39341,70.433-38.80338,105.32348-3.30154,8.8449-1.87495,10.92365,7.4183,10.92365H276.522c2.44559,0,5.74716-1.2228,7.21448,1.46736s-1.67117,4.72814-3.09775,6.80688L165.20682,317.00046c-1.8342,2.48636-3.6684,6.19549-7.0107,4.36131s-1.2228-5.58411,0-8.68184c8.88565-32.60789,17.32294-64.849,26.61618-97.253,2.32331-7.62211,0-9.29325-6.96993-9.08947H91.71678Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M179.432,5.88044A173.2294,173.2294,0,1,0,352.66146,179.10987,173.27011,173.27011,0,0,0,179.432,5.88044ZM280.63875,164.19172,165.20687,317.00044c-1.83423,2.48639-3.66846,6.19549-7.01074,4.36132s-1.22278-5.5841,0-8.68182c8.88562-32.60791,17.323-64.849,26.61621-97.253,2.32324-7.62207,0-9.29321-6.97-9.08948H91.71676l-14.06214-.73364L218.47994,26.26039c3.13855,6.19549,0,9.7008-1.22278,13.41-12.79858,35.09424-25.39343,70.433-38.80347,105.32348-3.30151,8.84491-1.87487,10.92365,7.41846,10.92365h90.6499c2.44556,0,5.74707-1.22278,7.21436,1.46735S282.06527,162.113,280.63875,164.19172Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.13.0" + }, + "name": "operator framework", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#cc0000", + "secondaryColor": "#FF4545\n", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#c00;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"Page-1\"\u003e\u003cpath id=\"Fill-1\" class=\"cls-1\" d=\"M179.432,5.88043A173.22942,173.22942,0,1,1,6.20259,179.10984,173.22942,173.22942,0,0,1,179.432,5.88043\"/\u003e\u003cpath id=\"Fill-5\" class=\"cls-2\" d=\"M77.65462,205.60375,218.48,26.26036c3.13849,6.1955,0,9.70085-1.22281,13.41-12.7986,35.09424-25.39341,70.433-38.80338,105.32348-3.30154,8.8449-1.87495,10.92365,7.4183,10.92365H276.522c2.44559,0,5.74716-1.2228,7.21448,1.46736s-1.67117,4.72814-3.09775,6.80688L165.20682,317.00046c-1.8342,2.48636-3.6684,6.19549-7.0107,4.36131s-1.2228-5.58411,0-8.68184c8.88565-32.60789,17.32294-64.849,26.61618-97.253,2.32331-7.62211,0-9.29325-6.96993-9.08947H91.71678Z\"/\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M179.432,5.88044A173.2294,173.2294,0,1,0,352.66146,179.10987,173.27011,173.27011,0,0,0,179.432,5.88044ZM280.63875,164.19172,165.20687,317.00044c-1.83423,2.48639-3.66846,6.19549-7.01074,4.36132s-1.22278-5.5841,0-8.68182c8.88562-32.60791,17.323-64.849,26.61621-97.253,2.32324-7.62207,0-9.29321-6.97-9.08948H91.71676l-14.06214-.73364L218.47994,26.26039c3.13855,6.19549,0,9.7008-1.22278,13.41-12.79858,35.09424-25.39343,70.433-38.80347,105.32348-3.30151,8.84491-1.87487,10.92365,7.41846,10.92365h90.6499c2.44556,0,5.74707-1.22278,7.21436,1.46735S282.06527,162.113,280.63875,164.19172Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/operator framework/v0.13.0/v1.0.0/model.json b/server/meshmodel/operator framework/v0.13.0/v1.0.0/model.json new file mode 100644 index 00000000000..e8f90b3a11e --- /dev/null +++ b/server/meshmodel/operator framework/v0.13.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "App Definition and Development" + }, + "displayName": "Operator Framework", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#cc0000", + "secondaryColor": "#FF4545\n", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#c00;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Page-1\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Fill-1\" class=\"cls-1\" d=\"M179.432,5.88043A173.22942,173.22942,0,1,1,6.20259,179.10984,173.22942,173.22942,0,0,1,179.432,5.88043\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"Fill-5\" class=\"cls-2\" d=\"M77.65462,205.60375,218.48,26.26036c3.13849,6.1955,0,9.70085-1.22281,13.41-12.7986,35.09424-25.39341,70.433-38.80338,105.32348-3.30154,8.8449-1.87495,10.92365,7.4183,10.92365H276.522c2.44559,0,5.74716-1.2228,7.21448,1.46736s-1.67117,4.72814-3.09775,6.80688L165.20682,317.00046c-1.8342,2.48636-3.6684,6.19549-7.0107,4.36131s-1.2228-5.58411,0-8.68184c8.88565-32.60789,17.32294-64.849,26.61618-97.253,2.32331-7.62211,0-9.29325-6.96993-9.08947H91.71678Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M179.432,5.88044A173.2294,173.2294,0,1,0,352.66146,179.10987,173.27011,173.27011,0,0,0,179.432,5.88044ZM280.63875,164.19172,165.20687,317.00044c-1.83423,2.48639-3.66846,6.19549-7.01074,4.36132s-1.22278-5.5841,0-8.68182c8.88562-32.60791,17.323-64.849,26.61621-97.253,2.32324-7.62207,0-9.29321-6.97-9.08948H91.71676l-14.06214-.73364L218.47994,26.26039c3.13855,6.19549,0,9.7008-1.22278,13.41-12.79858,35.09424-25.39343,70.433-38.80347,105.32348-3.30151,8.84491-1.87487,10.92365,7.41846,10.92365h90.6499c2.44556,0,5.74707-1.22278,7.21436,1.46735S282.06527,162.113,280.63875,164.19172Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.13.0" + }, + "name": "operator framework", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Application Definition \u0026 Image Build", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/pravega/v0.2.15/v1.0.0/components/ZookeeperCluster.json b/server/meshmodel/pravega/v0.2.15/v1.0.0/components/ZookeeperCluster.json new file mode 100644 index 00000000000..b574738fcc3 --- /dev/null +++ b/server/meshmodel/pravega/v0.2.15/v1.0.0/components/ZookeeperCluster.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ZookeeperCluster", + "schema": "{\n \"description\": \"ZookeeperCluster is the Schema for the zookeeperclusters API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ZookeeperClusterSpec defines the desired state of ZookeeperCluster\",\n \"properties\": {\n \"adminServerService\": {\n \"description\": \"AdminServerService defines the policy to create AdminServer Service for the zookeeper cluster.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations specifies the annotations to attach to AdminServer service the operator creates.\",\n \"type\": \"object\"\n },\n \"external\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"clientService\": {\n \"description\": \"ClientService defines the policy to create client Service for the zookeeper cluster.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations specifies the annotations to attach to client service the operator creates.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"config\": {\n \"description\": \"Conf is the zookeeper configuration, which will be used to generate the static zookeeper configuration. If no configuration is provided required default values will be provided, and optional values will be excluded.\",\n \"properties\": {\n \"additionalConfig\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"key-value map of additional zookeeper configuration parameters\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"autoPurgePurgeInterval\": {\n \"description\": \"The time interval in hours for which the purge task has to be triggered \\n Disabled by default\",\n \"type\": \"integer\"\n },\n \"autoPurgeSnapRetainCount\": {\n \"description\": \"Retain the snapshots according to retain count \\n The default value is 3\",\n \"type\": \"integer\"\n },\n \"commitLogCount\": {\n \"description\": \"Zookeeper maintains an in-memory list of last committed requests for fast synchronization with followers \\n The default value is 500\",\n \"type\": \"integer\"\n },\n \"globalOutstandingLimit\": {\n \"description\": \"Clients can submit requests faster than ZooKeeper can process them, especially if there are a lot of clients. Zookeeper will throttle Clients so that requests won't exceed global outstanding limit. \\n The default value is 1000\",\n \"type\": \"integer\"\n },\n \"initLimit\": {\n \"description\": \"InitLimit is the amount of time, in ticks, to allow followers to connect and sync to a leader. \\n Default value is 10.\",\n \"type\": \"integer\"\n },\n \"maxClientCnxns\": {\n \"description\": \"Limits the number of concurrent connections that a single client, identified by IP address, may make to a single member of the ZooKeeper ensemble. \\n The default value is 60\",\n \"type\": \"integer\"\n },\n \"maxCnxns\": {\n \"description\": \"Limits the total number of concurrent connections that can be made to a zookeeper server \\n The defult value is 0, indicating no limit\",\n \"type\": \"integer\"\n },\n \"maxSessionTimeout\": {\n \"description\": \"The maximum session timeout in milliseconds that the server will allow the client to negotiate. \\n The default value is 40000\",\n \"type\": \"integer\"\n },\n \"minSessionTimeout\": {\n \"description\": \"The minimum session timeout in milliseconds that the server will allow the client to negotiate \\n The default value is 4000\",\n \"type\": \"integer\"\n },\n \"preAllocSize\": {\n \"description\": \"To avoid seeks ZooKeeper allocates space in the transaction log file in blocks of preAllocSize kilobytes \\n The default value is 64M\",\n \"type\": \"integer\"\n },\n \"quorumListenOnAllIPs\": {\n \"description\": \"QuorumListenOnAllIPs when set to true the ZooKeeper server will listen for connections from its peers on all available IP addresses, and not only the address configured in the server list of the configuration file. It affects the connections handling the ZAB protocol and the Fast Leader Election protocol. \\n The default value is false.\",\n \"type\": \"boolean\"\n },\n \"snapCount\": {\n \"description\": \"ZooKeeper records its transactions using snapshots and a transaction log The number of transactions recorded in the transaction log before a snapshot can be taken is determined by snapCount \\n The default value is 100,000\",\n \"type\": \"integer\"\n },\n \"snapSizeLimitInKb\": {\n \"description\": \"Snapshot size limit in Kb \\n The defult value is 4GB\",\n \"type\": \"integer\"\n },\n \"syncLimit\": {\n \"description\": \"SyncLimit is the amount of time, in ticks, to allow followers to sync with Zookeeper. \\n The default value is 2.\",\n \"type\": \"integer\"\n },\n \"tickTime\": {\n \"description\": \"TickTime is the length of a single tick, which is the basic time unit used by Zookeeper, as measured in milliseconds \\n The default value is 2000.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"containers\": {\n \"description\": \"Containers defines to support multi containers\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"domainName\": {\n \"description\": \"External host name appended for dns annotation\",\n \"type\": \"string\"\n },\n \"ephemeral\": {\n \"description\": \"Ephemeral is the configuration which helps create ephemeral storage At anypoint only one of Persistence or Ephemeral should be present in the manifest\",\n \"properties\": {\n \"emptydirvolumesource\": {\n \"description\": \"EmptyDirVolumeSource is optional and this will create the emptydir volume It has two parameters Medium and SizeLimit which are optional as well Medium specifies What type of storage medium should back this directory. SizeLimit specifies Total amount of local storage required for this EmptyDir volume.\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"headlessService\": {\n \"description\": \"HeadlessService defines the policy to create headless Service for the zookeeper cluster.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations specifies the annotations to attach to headless service the operator creates.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"Image is the container image. default is zookeeper:0.2.10\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"enum\": [\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"tag\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"initContainers\": {\n \"description\": \"Init containers to support initialization\",\n \"items\": {\n \"description\": \"A single application container that you want to run within a pod.\",\n \"properties\": {\n \"args\": {\n \"description\": \"Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"description\": \"Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"description\": \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n \"items\": {\n \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n \"properties\": {\n \"configMapRef\": {\n \"description\": \"The ConfigMap to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"The Secret to select from\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n \"properties\": {\n \"postStart\": {\n \"description\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"description\": \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n \"type\": \"string\"\n },\n \"ports\": {\n \"description\": \"List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Cannot be updated.\",\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"description\": \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"description\": \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"description\": \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"description\": \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"description\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n \"type\": \"string\"\n },\n \"tty\": {\n \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n \"items\": {\n \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n \"properties\": {\n \"devicePath\": {\n \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"description\": \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"kubernetesClusterDomain\": {\n \"description\": \"Domain of the kubernetes cluster, defaults to cluster.local\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels specifies the labels to attach to all resources the operator creates for the zookeeper cluster, including StatefulSet, Pod, PersistentVolumeClaim, Service, ConfigMap, et al.\",\n \"type\": \"object\"\n },\n \"maxUnavailableReplicas\": {\n \"description\": \"MaxUnavailableReplicas defines the MaxUnavailable Replicas in pdb. Default is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"persistence\": {\n \"description\": \"Persistence is the configuration for zookeeper persistent layer. PersistentVolumeClaimSpec and VolumeReclaimPolicy can be specified in here.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations specifies the annotations to attach to pvc the operator creates.\",\n \"type\": \"object\"\n },\n \"reclaimPolicy\": {\n \"description\": \"VolumeReclaimPolicy is a zookeeper operator configuration. If it's set to Delete, the corresponding PVCs will be deleted by the operator when zookeeper cluster is deleted. The default value is Retain.\",\n \"enum\": [\n \"Delete\",\n \"Retain\"\n ],\n \"type\": \"string\"\n },\n \"spec\": {\n \"description\": \"PersistentVolumeClaimSpec is the spec to describe PVC for the container This field is optional. If no PVC is specified default persistentvolume will get created.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Pod defines the policy to create pod for the zookeeper cluster. Updating the Pod does not take effect on any existing pods.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The scheduling constraints on pods.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations specifies the annotations to attach to pods the operator creates.\",\n \"type\": \"object\"\n },\n \"env\": {\n \"description\": \"List of environment variables to set in the container. This field cannot be updated.\",\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images\",\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels specifies the labels to attach to pods the operator creates for the zookeeper cluster. Overrides any values specified in Spec.Labels.\",\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"NodeSelector specifies a map of key-value pairs. For the pod to be eligible to run on a node, the node must have each of the indicated key-value pairs as labels.\",\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"Resources is the resource requirements for the container. This field cannot be updated once the cluster is created.\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext specifies the security context for the entire pod More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \\\"Localhost\\\".\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"description\": \"Service Account to be used in pods\",\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"TerminationGracePeriodSeconds is the amount of time that kubernetes will give for a pod instance to shutdown normally. The default value is 30.\",\n \"format\": \"int64\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"Tolerations specifies the pod's tolerations.\",\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"TopologySpreadConstraints to apply to the pods\",\n \"items\": {\n \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxSkew\": {\n \"description\": \"MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"description\": \"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \\n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \\n This is an alpha field and requires enabling MinDomainsInPodTopologySpread feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"topologyKey\": {\n \"description\": \"TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \\u003ckey, value\\u003e as a \\\"bucket\\\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes match the node selector. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"description\": \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \\\"Unsatisfiable\\\" for an incoming pod if and only if every possible node assignment for that pod would violate \\\"MaxSkew\\\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"ports\": {\n \"items\": {\n \"description\": \"ContainerPort represents a network port in a single container.\",\n \"properties\": {\n \"containerPort\": {\n \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"description\": \"What host IP to bind the external port to.\",\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 \\u003c x \\u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"probes\": {\n \"description\": \"Probes specifies the timeout values for the Readiness and Liveness Probes for the zookeeper pods.\",\n \"properties\": {\n \"livenessProbe\": {\n \"properties\": {\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"Replicas is the expected size of the zookeeper cluster. The pravega-operator will eventually make the size of the running cluster equal to the expected size. \\n The valid range of size is from 1 to 7.\",\n \"format\": \"int32\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"storageType\": {\n \"description\": \"StorageType is used to tell which type of storage we will be using It can take either Ephemeral or persistence Default StorageType is Persistence storage\",\n \"type\": \"string\"\n },\n \"triggerRollingRestart\": {\n \"description\": \"TriggerRollingRestart if set to true will instruct operator to restart all the pods in the zookeeper cluster, after which this value will be set to false\",\n \"type\": \"boolean\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts defines to support customized volumeMounts\",\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Volumes defines to support customized volumes\",\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Zookeeper Cluster\",\n \"type\": \"object\"\n}", + "version": "zookeeper.pravega.io/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Zookeeper Cluster", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/pravega/zookeeper-operator/master/config/crd/bases" + }, + "model": { + "category": { + "name": "Cloud Native Storage" + }, + "displayName": "Pravega", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#e9633b", + "shape": "circle", + "source_uri": "git://github.com/pravega/zookeeper-operator/master/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-3.94 -1.44 438.62 432.87\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#E75225\" d=\"M215.926 7.068c115.684.024 210.638 93.784 210.493 207.844-.148 115.793-94.713 208.252-212.912 208.169C97.95 423 4.52 329.143 4.601 213.221 4.68 99.867 99.833 7.044 215.926 7.068zm-63.947 73.001c2.652 12.978.076 25.082-3.846 36.988-2.716 8.244-6.47 16.183-8.711 24.539-3.694 13.769-7.885 27.619-9.422 41.701-2.21 20.25 5.795 38.086 19.493 55.822L86.527 225.94c.11 1.978-.007 2.727.21 3.361 5.968 17.43 16.471 32.115 28.243 45.957 1.246 1.465 4.082 2.217 6.182 2.221 62.782.115 125.565.109 188.347.028 1.948-.003 4.546-.369 5.741-1.618 13.456-14.063 23.746-30.079 30.179-50.257l-66.658 12.976c4.397-8.567 9.417-16.1 12.302-24.377 9.869-28.315 5.779-55.69-8.387-81.509-11.368-20.72-21.854-41.349-16.183-66.32-12.005 11.786-16.615 26.79-19.541 42.253-2.882 15.23-4.58 30.684-6.811 46.136-.317-.467-.728-.811-.792-1.212-.258-1.621-.499-3.255-.587-4.893-1.355-25.31-6.328-49.696-16.823-72.987-6.178-13.71-12.99-27.727-6.622-44.081-4.31 2.259-8.205 4.505-10.997 7.711-8.333 9.569-11.779 21.062-12.666 33.645-.757 10.75-1.796 21.552-3.801 32.123-2.107 11.109-5.448 21.998-12.956 32.209-3.033-21.81-3.37-43.38-22.928-57.237zm161.877 216.523H116.942v34.007h196.914v-34.007zm-157.871 51.575c-.163 28.317 28.851 49.414 64.709 47.883 29.716-1.269 56.016-24.51 53.755-47.883H155.985z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-1.61 2.89 434.72 428.97\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#FFF\" d=\"M216.412 11.432c114.637.024 208.732 92.935 208.588 205.963-.146 114.745-93.856 206.367-210.985 206.285C99.504 423.599 6.92 330.592 7 215.719c.079-112.328 94.369-204.311 209.412-204.287zm-63.368 72.341c2.628 12.861.075 24.855-3.811 36.653-2.691 8.17-6.411 16.036-8.632 24.317-3.66 13.644-7.813 27.369-9.336 41.324-2.19 20.067 5.743 37.741 19.317 55.316l-62.396-13.06c.109 1.96-.007 2.702.208 3.331 5.914 17.272 16.322 31.824 27.988 45.541 1.234 1.451 4.045 2.197 6.126 2.201 62.214.114 124.428.108 186.642.028 1.93-.002 4.505-.365 5.689-1.603 13.335-13.936 23.531-29.806 29.906-49.802l-66.055 12.859c4.357-8.489 9.331-15.954 12.19-24.156 9.78-28.058 5.726-55.186-8.311-80.771-11.266-20.532-21.657-40.975-16.037-65.72-11.896 11.679-16.465 26.548-19.364 41.871-2.856 15.092-4.539 30.406-6.75 45.718-.314-.462-.722-.804-.785-1.201-.256-1.607-.494-3.226-.581-4.848-1.343-25.081-6.271-49.246-16.671-72.326-6.122-13.586-12.873-27.476-6.562-43.682-4.271 2.239-8.13 4.464-10.897 7.641-8.258 9.482-11.673 20.871-12.551 33.341-.751 10.653-1.779 21.357-3.766 31.833-2.088 11.008-5.399 21.799-12.838 31.917-3.009-21.616-3.342-42.991-22.723-56.722zm160.411 214.562H118.323v33.699h195.132v-33.699zm-156.441 51.108c-.161 28.061 28.59 48.967 64.123 47.45 29.447-1.257 55.509-24.289 53.268-47.45H157.014z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.2.15" + }, + "name": "pravega", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#e75225", + "secondaryColor": "#e9633b", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-3.94 -1.44 438.62 432.87\"\u003e\u003cpath fill=\"#E75225\" d=\"M215.926 7.068c115.684.024 210.638 93.784 210.493 207.844-.148 115.793-94.713 208.252-212.912 208.169C97.95 423 4.52 329.143 4.601 213.221 4.68 99.867 99.833 7.044 215.926 7.068zm-63.947 73.001c2.652 12.978.076 25.082-3.846 36.988-2.716 8.244-6.47 16.183-8.711 24.539-3.694 13.769-7.885 27.619-9.422 41.701-2.21 20.25 5.795 38.086 19.493 55.822L86.527 225.94c.11 1.978-.007 2.727.21 3.361 5.968 17.43 16.471 32.115 28.243 45.957 1.246 1.465 4.082 2.217 6.182 2.221 62.782.115 125.565.109 188.347.028 1.948-.003 4.546-.369 5.741-1.618 13.456-14.063 23.746-30.079 30.179-50.257l-66.658 12.976c4.397-8.567 9.417-16.1 12.302-24.377 9.869-28.315 5.779-55.69-8.387-81.509-11.368-20.72-21.854-41.349-16.183-66.32-12.005 11.786-16.615 26.79-19.541 42.253-2.882 15.23-4.58 30.684-6.811 46.136-.317-.467-.728-.811-.792-1.212-.258-1.621-.499-3.255-.587-4.893-1.355-25.31-6.328-49.696-16.823-72.987-6.178-13.71-12.99-27.727-6.622-44.081-4.31 2.259-8.205 4.505-10.997 7.711-8.333 9.569-11.779 21.062-12.666 33.645-.757 10.75-1.796 21.552-3.801 32.123-2.107 11.109-5.448 21.998-12.956 32.209-3.033-21.81-3.37-43.38-22.928-57.237zm161.877 216.523H116.942v34.007h196.914v-34.007zm-157.871 51.575c-.163 28.317 28.851 49.414 64.709 47.883 29.716-1.269 56.016-24.51 53.755-47.883H155.985z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-1.61 2.89 434.72 428.97\"\u003e\u003cpath fill=\"#FFF\" d=\"M216.412 11.432c114.637.024 208.732 92.935 208.588 205.963-.146 114.745-93.856 206.367-210.985 206.285C99.504 423.599 6.92 330.592 7 215.719c.079-112.328 94.369-204.311 209.412-204.287zm-63.368 72.341c2.628 12.861.075 24.855-3.811 36.653-2.691 8.17-6.411 16.036-8.632 24.317-3.66 13.644-7.813 27.369-9.336 41.324-2.19 20.067 5.743 37.741 19.317 55.316l-62.396-13.06c.109 1.96-.007 2.702.208 3.331 5.914 17.272 16.322 31.824 27.988 45.541 1.234 1.451 4.045 2.197 6.126 2.201 62.214.114 124.428.108 186.642.028 1.93-.002 4.505-.365 5.689-1.603 13.335-13.936 23.531-29.806 29.906-49.802l-66.055 12.859c4.357-8.489 9.331-15.954 12.19-24.156 9.78-28.058 5.726-55.186-8.311-80.771-11.266-20.532-21.657-40.975-16.037-65.72-11.896 11.679-16.465 26.548-19.364 41.871-2.856 15.092-4.539 30.406-6.75 45.718-.314-.462-.722-.804-.785-1.201-.256-1.607-.494-3.226-.581-4.848-1.343-25.081-6.271-49.246-16.671-72.326-6.122-13.586-12.873-27.476-6.562-43.682-4.271 2.239-8.13 4.464-10.897 7.641-8.258 9.482-11.673 20.871-12.551 33.341-.751 10.653-1.779 21.357-3.766 31.833-2.088 11.008-5.399 21.799-12.838 31.917-3.009-21.616-3.342-42.991-22.723-56.722zm160.411 214.562H118.323v33.699h195.132v-33.699zm-156.441 51.108c-.161 28.061 28.59 48.967 64.123 47.45 29.447-1.257 55.509-24.289 53.268-47.45H157.014z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/pravega/v0.2.15/v1.0.0/model.json b/server/meshmodel/pravega/v0.2.15/v1.0.0/model.json new file mode 100644 index 00000000000..8ed2f9a54a3 --- /dev/null +++ b/server/meshmodel/pravega/v0.2.15/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Cloud Native Storage" + }, + "displayName": "Pravega", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#e9633b", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-3.94 -1.44 438.62 432.87\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#E75225\" d=\"M215.926 7.068c115.684.024 210.638 93.784 210.493 207.844-.148 115.793-94.713 208.252-212.912 208.169C97.95 423 4.52 329.143 4.601 213.221 4.68 99.867 99.833 7.044 215.926 7.068zm-63.947 73.001c2.652 12.978.076 25.082-3.846 36.988-2.716 8.244-6.47 16.183-8.711 24.539-3.694 13.769-7.885 27.619-9.422 41.701-2.21 20.25 5.795 38.086 19.493 55.822L86.527 225.94c.11 1.978-.007 2.727.21 3.361 5.968 17.43 16.471 32.115 28.243 45.957 1.246 1.465 4.082 2.217 6.182 2.221 62.782.115 125.565.109 188.347.028 1.948-.003 4.546-.369 5.741-1.618 13.456-14.063 23.746-30.079 30.179-50.257l-66.658 12.976c4.397-8.567 9.417-16.1 12.302-24.377 9.869-28.315 5.779-55.69-8.387-81.509-11.368-20.72-21.854-41.349-16.183-66.32-12.005 11.786-16.615 26.79-19.541 42.253-2.882 15.23-4.58 30.684-6.811 46.136-.317-.467-.728-.811-.792-1.212-.258-1.621-.499-3.255-.587-4.893-1.355-25.31-6.328-49.696-16.823-72.987-6.178-13.71-12.99-27.727-6.622-44.081-4.31 2.259-8.205 4.505-10.997 7.711-8.333 9.569-11.779 21.062-12.666 33.645-.757 10.75-1.796 21.552-3.801 32.123-2.107 11.109-5.448 21.998-12.956 32.209-3.033-21.81-3.37-43.38-22.928-57.237zm161.877 216.523H116.942v34.007h196.914v-34.007zm-157.871 51.575c-.163 28.317 28.851 49.414 64.709 47.883 29.716-1.269 56.016-24.51 53.755-47.883H155.985z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"-1.61 2.89 434.72 428.97\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#FFF\" d=\"M216.412 11.432c114.637.024 208.732 92.935 208.588 205.963-.146 114.745-93.856 206.367-210.985 206.285C99.504 423.599 6.92 330.592 7 215.719c.079-112.328 94.369-204.311 209.412-204.287zm-63.368 72.341c2.628 12.861.075 24.855-3.811 36.653-2.691 8.17-6.411 16.036-8.632 24.317-3.66 13.644-7.813 27.369-9.336 41.324-2.19 20.067 5.743 37.741 19.317 55.316l-62.396-13.06c.109 1.96-.007 2.702.208 3.331 5.914 17.272 16.322 31.824 27.988 45.541 1.234 1.451 4.045 2.197 6.126 2.201 62.214.114 124.428.108 186.642.028 1.93-.002 4.505-.365 5.689-1.603 13.335-13.936 23.531-29.806 29.906-49.802l-66.055 12.859c4.357-8.489 9.331-15.954 12.19-24.156 9.78-28.058 5.726-55.186-8.311-80.771-11.266-20.532-21.657-40.975-16.037-65.72-11.896 11.679-16.465 26.548-19.364 41.871-2.856 15.092-4.539 30.406-6.75 45.718-.314-.462-.722-.804-.785-1.201-.256-1.607-.494-3.226-.581-4.848-1.343-25.081-6.271-49.246-16.671-72.326-6.122-13.586-12.873-27.476-6.562-43.682-4.271 2.239-8.13 4.464-10.897 7.641-8.258 9.482-11.673 20.871-12.551 33.341-.751 10.653-1.779 21.357-3.766 31.833-2.088 11.008-5.399 21.799-12.838 31.917-3.009-21.616-3.342-42.991-22.723-56.722zm160.411 214.562H118.323v33.699h195.132v-33.699zm-156.441 51.108c-.161 28.061 28.59 48.967 64.123 47.45 29.447-1.257 55.509-24.289 53.268-47.45H157.014z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.2.15" + }, + "name": "pravega", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQL.json b/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQL.json new file mode 100644 index 00000000000..6d78e3df91d --- /dev/null +++ b/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQL.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "PerconaServerMySQL", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"backup\": {\n \"properties\": {\n \"backoffLimit\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initImage\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"storages\": {\n \"additionalProperties\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"azure\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"credentialsSecret\": {\n \"type\": \"string\"\n },\n \"endpointUrl\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"storageClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerName\",\n \"credentialsSecret\"\n ],\n \"type\": \"object\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"gcs\": {\n \"properties\": {\n \"bucket\": {\n \"type\": \"string\"\n },\n \"credentialsSecret\": {\n \"type\": \"string\"\n },\n \"endpointUrl\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"storageClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"bucket\",\n \"credentialsSecret\"\n ],\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"podSecurityContext\": {\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"s3\": {\n \"properties\": {\n \"bucket\": {\n \"type\": \"string\"\n },\n \"credentialsSecret\": {\n \"type\": \"string\"\n },\n \"endpointUrl\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"region\": {\n \"type\": \"string\"\n },\n \"storageClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"bucket\",\n \"credentialsSecret\"\n ],\n \"type\": \"object\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"verifyTLS\": {\n \"type\": \"boolean\"\n },\n \"volumeSpec\": {\n \"properties\": {\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"crVersion\": {\n \"type\": \"string\"\n },\n \"ignoreAnnotations\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ignoreLabels\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"initImage\": {\n \"type\": \"string\"\n },\n \"mysql\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"advanced\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"antiAffinityTopologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"autoRecovery\": {\n \"type\": \"boolean\"\n },\n \"clusterType\": {\n \"type\": \"string\"\n },\n \"configuration\": {\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"expose\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"externalTrafficPolicy\": {\n \"type\": \"string\"\n },\n \"internalTrafficPolicy\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"loadBalancerIP\": {\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gracePeriod\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initImage\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"podSecurityContext\": {\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"sidecarPVCs\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\",\n \"spec\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sidecarVolumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"clusterTrustBundle\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"signerName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sidecars\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"properties\": {\n \"seconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"properties\": {\n \"seconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"items\": {\n \"properties\": {\n \"resourceName\": {\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"devicePath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"mountPath\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"size\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeSpec\": {\n \"properties\": {\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"orchestrator\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"advanced\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"antiAffinityTopologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"configuration\": {\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"expose\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"externalTrafficPolicy\": {\n \"type\": \"string\"\n },\n \"internalTrafficPolicy\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"loadBalancerIP\": {\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gracePeriod\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initImage\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"podSecurityContext\": {\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeSpec\": {\n \"properties\": {\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"pause\": {\n \"type\": \"boolean\"\n },\n \"pmm\": {\n \"properties\": {\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"serverHost\": {\n \"type\": \"string\"\n },\n \"serverUser\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"proxy\": {\n \"properties\": {\n \"haproxy\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"advanced\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"antiAffinityTopologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"configuration\": {\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"expose\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"externalTrafficPolicy\": {\n \"type\": \"string\"\n },\n \"internalTrafficPolicy\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"loadBalancerIP\": {\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gracePeriod\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initImage\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"podSecurityContext\": {\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeSpec\": {\n \"properties\": {\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"router\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"advanced\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"antiAffinityTopologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"configuration\": {\n \"type\": \"string\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"expose\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"externalTrafficPolicy\": {\n \"type\": \"string\"\n },\n \"internalTrafficPolicy\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"loadBalancerIP\": {\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gracePeriod\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initImage\": {\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"podSecurityContext\": {\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeSpec\": {\n \"properties\": {\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"secretsName\": {\n \"type\": \"string\"\n },\n \"sslInternalSecretName\": {\n \"type\": \"string\"\n },\n \"sslSecretName\": {\n \"type\": \"string\"\n },\n \"tls\": {\n \"properties\": {\n \"SANs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"issuerConf\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"toolkit\": {\n \"properties\": {\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"unsafeFlags\": {\n \"properties\": {\n \"mysqlSize\": {\n \"type\": \"boolean\"\n },\n \"orchestrator\": {\n \"type\": \"boolean\"\n },\n \"orchestratorSize\": {\n \"type\": \"boolean\"\n },\n \"proxy\": {\n \"type\": \"boolean\"\n },\n \"proxySize\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"updateStrategy\": {\n \"type\": \"string\"\n },\n \"upgradeOptions\": {\n \"properties\": {\n \"apply\": {\n \"type\": \"string\"\n },\n \"versionServiceEndpoint\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Percona Server My SQL\",\n \"type\": \"object\"\n}", + "version": "ps.percona.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Percona Server My SQL", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/percona/percona-server-mysql-operator/main/config/crd/bases" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "Percona Server for MySQL", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#e9633b", + "shape": "circle", + "source_uri": "git://github.com/percona/percona-server-mysql-operator/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 256 250\" version=\"1.1\" preserveAspectRatio=\"xMidYMid\"\u003e\n \u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\"\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#FBB32F\" offset=\"0%\"\u003e\u003c/stop\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#C11511\" offset=\"50.4738739%\"\u003e\u003c/stop\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#C11411\" offset=\"100%\"\u003e\u003c/stop\u003e\n \u003c/linearGradient\u003e\n \u003c/defs\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M128,0.5784 C57.308,0.5784 0,56.4134 0,125.2894 C0,168.3754 22.427,206.3554 56.526,228.7594 L56.526,125.3544 C56.525,125.1964 56.503,125.0444 56.503,124.8874 C56.503,124.7294 56.525,124.5774 56.526,124.4194 L56.526,123.5424 L56.569,123.5424 C57.27,83.3964 88.904,51.0614 127.892,51.0614 C167.319,51.0614 199.28,84.1144 199.28,124.8874 C199.28,165.6594 167.319,198.7124 127.892,198.7124 C112.536,198.7124 98.349,193.6504 86.705,185.1204 L86.705,243.3274 C99.665,247.6314 113.545,250.0004 128,250.0004 C198.692,250.0004 256,194.1654 256,125.2894 C256,56.4134 198.692,0.5784 128,0.5784\" fill=\"url(#linearGradient-1)\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M171.1966,127.4716 C171.1966,151.0616 152.0736,170.1846 128.4836,170.1846 C104.8936,170.1846 85.7696,151.0616 85.7696,127.4716 C85.7696,103.8816 104.8936,84.7586 128.4836,84.7586 C152.0736,84.7586 171.1966,103.8816 171.1966,127.4716\" fill=\"#FCB42F\"\u003e\u003c/path\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 256 250\" style=\"enable-background:new 0 0 256 250;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u0026#x9;\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M128,0.6C57.3,0.6,0,56.4,0,125.3c0,43.1,22.4,81.1,56.5,103.5V125.4c0-0.2,0-0.3,0-0.5c0-0.2,0-0.3,0-0.5\u0026#xA;\u0026#x9;\u0026#x9;v-0.9h0c0.7-40.1,32.3-72.5,71.3-72.5c39.4,0,71.4,33.1,71.4,73.8c0,40.8-32,73.8-71.4,73.8c-15.4,0-29.5-5.1-41.2-13.6v58.2\u0026#xA;\u0026#x9;\u0026#x9;c13,4.3,26.8,6.7,41.3,6.7c70.7,0,128-55.8,128-124.7S198.7,0.6,128,0.6\"\u003e\u003c/path\u003e\n\u0026#x9;\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M171.2,127.5c0,23.6-19.1,42.7-42.7,42.7s-42.7-19.1-42.7-42.7s19.1-42.7,42.7-42.7S171.2,103.9,171.2,127.5\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.8.0" + }, + "name": "ps-db", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#C11411", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"256px\" height=\"250px\" viewBox=\"0 0 256 250\" version=\"1.1\" preserveAspectRatio=\"xMidYMid\"\u003e\n \u003cdefs\u003e\n \u003clinearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\"\u003e\n \u003cstop stop-color=\"#FBB32F\" offset=\"0%\"/\u003e\n \u003cstop stop-color=\"#C11511\" offset=\"50.4738739%\"/\u003e\n \u003cstop stop-color=\"#C11411\" offset=\"100%\"/\u003e\n \u003c/linearGradient\u003e\n \u003c/defs\u003e\n \u003cg\u003e\n \u003cpath d=\"M128,0.5784 C57.308,0.5784 0,56.4134 0,125.2894 C0,168.3754 22.427,206.3554 56.526,228.7594 L56.526,125.3544 C56.525,125.1964 56.503,125.0444 56.503,124.8874 C56.503,124.7294 56.525,124.5774 56.526,124.4194 L56.526,123.5424 L56.569,123.5424 C57.27,83.3964 88.904,51.0614 127.892,51.0614 C167.319,51.0614 199.28,84.1144 199.28,124.8874 C199.28,165.6594 167.319,198.7124 127.892,198.7124 C112.536,198.7124 98.349,193.6504 86.705,185.1204 L86.705,243.3274 C99.665,247.6314 113.545,250.0004 128,250.0004 C198.692,250.0004 256,194.1654 256,125.2894 C256,56.4134 198.692,0.5784 128,0.5784\" fill=\"url(#linearGradient-1)\"/\u003e\n \u003cpath d=\"M171.1966,127.4716 C171.1966,151.0616 152.0736,170.1846 128.4836,170.1846 C104.8936,170.1846 85.7696,151.0616 85.7696,127.4716 C85.7696,103.8816 104.8936,84.7586 128.4836,84.7586 C152.0736,84.7586 171.1966,103.8816 171.1966,127.4716\" fill=\"#FCB42F\"/\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 256 250\" style=\"enable-background:new 0 0 256 250;\" xml:space=\"preserve\" width='256' height='250'\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cg\u003e\n\t\u003cpath class=\"st0\" d=\"M128,0.6C57.3,0.6,0,56.4,0,125.3c0,43.1,22.4,81.1,56.5,103.5V125.4c0-0.2,0-0.3,0-0.5c0-0.2,0-0.3,0-0.5\n\t\tv-0.9h0c0.7-40.1,32.3-72.5,71.3-72.5c39.4,0,71.4,33.1,71.4,73.8c0,40.8-32,73.8-71.4,73.8c-15.4,0-29.5-5.1-41.2-13.6v58.2\n\t\tc13,4.3,26.8,6.7,41.3,6.7c70.7,0,128-55.8,128-124.7S198.7,0.6,128,0.6\"/\u003e\n\t\u003cpath class=\"st0\" d=\"M171.2,127.5c0,23.6-19.1,42.7-42.7,42.7s-42.7-19.1-42.7-42.7s19.1-42.7,42.7-42.7S171.2,103.9,171.2,127.5\"\n\t\t/\u003e\n\u003c/g\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQLBackup.json b/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQLBackup.json new file mode 100644 index 00000000000..c389018ec8b --- /dev/null +++ b/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQLBackup.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "PerconaServerMySQLBackup", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"clusterName\": {\n \"type\": \"string\"\n },\n \"storageName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clusterName\",\n \"storageName\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Percona Server My SQL Backup\",\n \"type\": \"object\"\n}", + "version": "ps.percona.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Percona Server My SQL Backup", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/percona/percona-server-mysql-operator/main/config/crd/bases" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "Percona Server for MySQL", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#e9633b", + "shape": "circle", + "source_uri": "git://github.com/percona/percona-server-mysql-operator/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 256 250\" version=\"1.1\" preserveAspectRatio=\"xMidYMid\"\u003e\n \u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\"\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#FBB32F\" offset=\"0%\"\u003e\u003c/stop\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#C11511\" offset=\"50.4738739%\"\u003e\u003c/stop\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#C11411\" offset=\"100%\"\u003e\u003c/stop\u003e\n \u003c/linearGradient\u003e\n \u003c/defs\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M128,0.5784 C57.308,0.5784 0,56.4134 0,125.2894 C0,168.3754 22.427,206.3554 56.526,228.7594 L56.526,125.3544 C56.525,125.1964 56.503,125.0444 56.503,124.8874 C56.503,124.7294 56.525,124.5774 56.526,124.4194 L56.526,123.5424 L56.569,123.5424 C57.27,83.3964 88.904,51.0614 127.892,51.0614 C167.319,51.0614 199.28,84.1144 199.28,124.8874 C199.28,165.6594 167.319,198.7124 127.892,198.7124 C112.536,198.7124 98.349,193.6504 86.705,185.1204 L86.705,243.3274 C99.665,247.6314 113.545,250.0004 128,250.0004 C198.692,250.0004 256,194.1654 256,125.2894 C256,56.4134 198.692,0.5784 128,0.5784\" fill=\"url(#linearGradient-1)\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M171.1966,127.4716 C171.1966,151.0616 152.0736,170.1846 128.4836,170.1846 C104.8936,170.1846 85.7696,151.0616 85.7696,127.4716 C85.7696,103.8816 104.8936,84.7586 128.4836,84.7586 C152.0736,84.7586 171.1966,103.8816 171.1966,127.4716\" fill=\"#FCB42F\"\u003e\u003c/path\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 256 250\" style=\"enable-background:new 0 0 256 250;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u0026#x9;\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M128,0.6C57.3,0.6,0,56.4,0,125.3c0,43.1,22.4,81.1,56.5,103.5V125.4c0-0.2,0-0.3,0-0.5c0-0.2,0-0.3,0-0.5\u0026#xA;\u0026#x9;\u0026#x9;v-0.9h0c0.7-40.1,32.3-72.5,71.3-72.5c39.4,0,71.4,33.1,71.4,73.8c0,40.8-32,73.8-71.4,73.8c-15.4,0-29.5-5.1-41.2-13.6v58.2\u0026#xA;\u0026#x9;\u0026#x9;c13,4.3,26.8,6.7,41.3,6.7c70.7,0,128-55.8,128-124.7S198.7,0.6,128,0.6\"\u003e\u003c/path\u003e\n\u0026#x9;\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M171.2,127.5c0,23.6-19.1,42.7-42.7,42.7s-42.7-19.1-42.7-42.7s19.1-42.7,42.7-42.7S171.2,103.9,171.2,127.5\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.8.0" + }, + "name": "ps-db", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#C11411", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"256px\" height=\"250px\" viewBox=\"0 0 256 250\" version=\"1.1\" preserveAspectRatio=\"xMidYMid\"\u003e\n \u003cdefs\u003e\n \u003clinearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\"\u003e\n \u003cstop stop-color=\"#FBB32F\" offset=\"0%\"/\u003e\n \u003cstop stop-color=\"#C11511\" offset=\"50.4738739%\"/\u003e\n \u003cstop stop-color=\"#C11411\" offset=\"100%\"/\u003e\n \u003c/linearGradient\u003e\n \u003c/defs\u003e\n \u003cg\u003e\n \u003cpath d=\"M128,0.5784 C57.308,0.5784 0,56.4134 0,125.2894 C0,168.3754 22.427,206.3554 56.526,228.7594 L56.526,125.3544 C56.525,125.1964 56.503,125.0444 56.503,124.8874 C56.503,124.7294 56.525,124.5774 56.526,124.4194 L56.526,123.5424 L56.569,123.5424 C57.27,83.3964 88.904,51.0614 127.892,51.0614 C167.319,51.0614 199.28,84.1144 199.28,124.8874 C199.28,165.6594 167.319,198.7124 127.892,198.7124 C112.536,198.7124 98.349,193.6504 86.705,185.1204 L86.705,243.3274 C99.665,247.6314 113.545,250.0004 128,250.0004 C198.692,250.0004 256,194.1654 256,125.2894 C256,56.4134 198.692,0.5784 128,0.5784\" fill=\"url(#linearGradient-1)\"/\u003e\n \u003cpath d=\"M171.1966,127.4716 C171.1966,151.0616 152.0736,170.1846 128.4836,170.1846 C104.8936,170.1846 85.7696,151.0616 85.7696,127.4716 C85.7696,103.8816 104.8936,84.7586 128.4836,84.7586 C152.0736,84.7586 171.1966,103.8816 171.1966,127.4716\" fill=\"#FCB42F\"/\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n viewBox=\"0 0 256 250\" style=\"enable-background:new 0 0 256 250;\" xml:space=\"preserve\" width='256' height='250'\u003e\n\u003cstyle type=\"text/css\"\u003e\n .st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cg\u003e\n \u003cpath class=\"st0\" d=\"M128,0.6C57.3,0.6,0,56.4,0,125.3c0,43.1,22.4,81.1,56.5,103.5V125.4c0-0.2,0-0.3,0-0.5c0-0.2,0-0.3,0-0.5\n v-0.9h0c0.7-40.1,32.3-72.5,71.3-72.5c39.4,0,71.4,33.1,71.4,73.8c0,40.8-32,73.8-71.4,73.8c-15.4,0-29.5-5.1-41.2-13.6v58.2\n c13,4.3,26.8,6.7,41.3,6.7c70.7,0,128-55.8,128-124.7S198.7,0.6,128,0.6\"/\u003e\n \u003cpath class=\"st0\" d=\"M171.2,127.5c0,23.6-19.1,42.7-42.7,42.7s-42.7-19.1-42.7-42.7s19.1-42.7,42.7-42.7S171.2,103.9,171.2,127.5\"\n /\u003e\n\u003c/g\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQLRestore.json b/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQLRestore.json new file mode 100644 index 00000000000..58cfa7cbea4 --- /dev/null +++ b/server/meshmodel/ps-db/v0.8.0/v1.0.0/components/PerconaServerMySQLRestore.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "PerconaServerMySQLRestore", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"backupName\": {\n \"type\": \"string\"\n },\n \"backupSource\": {\n \"properties\": {\n \"completed\": {\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"destination\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"state\": {\n \"type\": \"string\"\n },\n \"stateDescription\": {\n \"type\": \"string\"\n },\n \"storage\": {\n \"properties\": {\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"azure\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"credentialsSecret\": {\n \"type\": \"string\"\n },\n \"endpointUrl\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"storageClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerName\",\n \"credentialsSecret\"\n ],\n \"type\": \"object\"\n },\n \"containerSecurityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"gcs\": {\n \"properties\": {\n \"bucket\": {\n \"type\": \"string\"\n },\n \"credentialsSecret\": {\n \"type\": \"string\"\n },\n \"endpointUrl\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"storageClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"bucket\",\n \"credentialsSecret\"\n ],\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"podSecurityContext\": {\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"s3\": {\n \"properties\": {\n \"bucket\": {\n \"type\": \"string\"\n },\n \"credentialsSecret\": {\n \"type\": \"string\"\n },\n \"endpointUrl\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"region\": {\n \"type\": \"string\"\n },\n \"storageClass\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"bucket\",\n \"credentialsSecret\"\n ],\n \"type\": \"object\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"verifyTLS\": {\n \"type\": \"boolean\"\n },\n \"volumeSpec\": {\n \"properties\": {\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clusterName\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Percona Server My SQL Restore\",\n \"type\": \"object\"\n}", + "version": "ps.percona.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Percona Server My SQL Restore", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/percona/percona-server-mysql-operator/main/config/crd/bases" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "Percona Server for MySQL", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#e9633b", + "shape": "circle", + "source_uri": "git://github.com/percona/percona-server-mysql-operator/main/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 256 250\" version=\"1.1\" preserveAspectRatio=\"xMidYMid\"\u003e\n \u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\"\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#FBB32F\" offset=\"0%\"\u003e\u003c/stop\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#C11511\" offset=\"50.4738739%\"\u003e\u003c/stop\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#C11411\" offset=\"100%\"\u003e\u003c/stop\u003e\n \u003c/linearGradient\u003e\n \u003c/defs\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M128,0.5784 C57.308,0.5784 0,56.4134 0,125.2894 C0,168.3754 22.427,206.3554 56.526,228.7594 L56.526,125.3544 C56.525,125.1964 56.503,125.0444 56.503,124.8874 C56.503,124.7294 56.525,124.5774 56.526,124.4194 L56.526,123.5424 L56.569,123.5424 C57.27,83.3964 88.904,51.0614 127.892,51.0614 C167.319,51.0614 199.28,84.1144 199.28,124.8874 C199.28,165.6594 167.319,198.7124 127.892,198.7124 C112.536,198.7124 98.349,193.6504 86.705,185.1204 L86.705,243.3274 C99.665,247.6314 113.545,250.0004 128,250.0004 C198.692,250.0004 256,194.1654 256,125.2894 C256,56.4134 198.692,0.5784 128,0.5784\" fill=\"url(#linearGradient-1)\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M171.1966,127.4716 C171.1966,151.0616 152.0736,170.1846 128.4836,170.1846 C104.8936,170.1846 85.7696,151.0616 85.7696,127.4716 C85.7696,103.8816 104.8936,84.7586 128.4836,84.7586 C152.0736,84.7586 171.1966,103.8816 171.1966,127.4716\" fill=\"#FCB42F\"\u003e\u003c/path\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 256 250\" style=\"enable-background:new 0 0 256 250;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u0026#x9;\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M128,0.6C57.3,0.6,0,56.4,0,125.3c0,43.1,22.4,81.1,56.5,103.5V125.4c0-0.2,0-0.3,0-0.5c0-0.2,0-0.3,0-0.5\u0026#xA;\u0026#x9;\u0026#x9;v-0.9h0c0.7-40.1,32.3-72.5,71.3-72.5c39.4,0,71.4,33.1,71.4,73.8c0,40.8-32,73.8-71.4,73.8c-15.4,0-29.5-5.1-41.2-13.6v58.2\u0026#xA;\u0026#x9;\u0026#x9;c13,4.3,26.8,6.7,41.3,6.7c70.7,0,128-55.8,128-124.7S198.7,0.6,128,0.6\"\u003e\u003c/path\u003e\n\u0026#x9;\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M171.2,127.5c0,23.6-19.1,42.7-42.7,42.7s-42.7-19.1-42.7-42.7s19.1-42.7,42.7-42.7S171.2,103.9,171.2,127.5\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.8.0" + }, + "name": "ps-db", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#C11411", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"256px\" height=\"250px\" viewBox=\"0 0 256 250\" version=\"1.1\" preserveAspectRatio=\"xMidYMid\"\u003e\n \u003cdefs\u003e\n \u003clinearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\"\u003e\n \u003cstop stop-color=\"#FBB32F\" offset=\"0%\"/\u003e\n \u003cstop stop-color=\"#C11511\" offset=\"50.4738739%\"/\u003e\n \u003cstop stop-color=\"#C11411\" offset=\"100%\"/\u003e\n \u003c/linearGradient\u003e\n \u003c/defs\u003e\n \u003cg\u003e\n \u003cpath d=\"M128,0.5784 C57.308,0.5784 0,56.4134 0,125.2894 C0,168.3754 22.427,206.3554 56.526,228.7594 L56.526,125.3544 C56.525,125.1964 56.503,125.0444 56.503,124.8874 C56.503,124.7294 56.525,124.5774 56.526,124.4194 L56.526,123.5424 L56.569,123.5424 C57.27,83.3964 88.904,51.0614 127.892,51.0614 C167.319,51.0614 199.28,84.1144 199.28,124.8874 C199.28,165.6594 167.319,198.7124 127.892,198.7124 C112.536,198.7124 98.349,193.6504 86.705,185.1204 L86.705,243.3274 C99.665,247.6314 113.545,250.0004 128,250.0004 C198.692,250.0004 256,194.1654 256,125.2894 C256,56.4134 198.692,0.5784 128,0.5784\" fill=\"url(#linearGradient-1)\"/\u003e\n \u003cpath d=\"M171.1966,127.4716 C171.1966,151.0616 152.0736,170.1846 128.4836,170.1846 C104.8936,170.1846 85.7696,151.0616 85.7696,127.4716 C85.7696,103.8816 104.8936,84.7586 128.4836,84.7586 C152.0736,84.7586 171.1966,103.8816 171.1966,127.4716\" fill=\"#FCB42F\"/\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 256 250\" style=\"enable-background:new 0 0 256 250;\" xml:space=\"preserve\" width='256' height='250'\u003e\n\u003cstyle type=\"text/css\"\u003e\n\t.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cg\u003e\n\t\u003cpath class=\"st0\" d=\"M128,0.6C57.3,0.6,0,56.4,0,125.3c0,43.1,22.4,81.1,56.5,103.5V125.4c0-0.2,0-0.3,0-0.5c0-0.2,0-0.3,0-0.5\n\t\tv-0.9h0c0.7-40.1,32.3-72.5,71.3-72.5c39.4,0,71.4,33.1,71.4,73.8c0,40.8-32,73.8-71.4,73.8c-15.4,0-29.5-5.1-41.2-13.6v58.2\n\t\tc13,4.3,26.8,6.7,41.3,6.7c70.7,0,128-55.8,128-124.7S198.7,0.6,128,0.6\"/\u003e\n\t\u003cpath class=\"st0\" d=\"M171.2,127.5c0,23.6-19.1,42.7-42.7,42.7s-42.7-19.1-42.7-42.7s19.1-42.7,42.7-42.7S171.2,103.9,171.2,127.5\"\n\t\t/\u003e\n\u003c/g\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/ps-db/v0.8.0/v1.0.0/model.json b/server/meshmodel/ps-db/v0.8.0/v1.0.0/model.json new file mode 100644 index 00000000000..5b81dc47558 --- /dev/null +++ b/server/meshmodel/ps-db/v0.8.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Database" + }, + "displayName": "Percona Server for MySQL", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#e9633b", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 256 250\" version=\"1.1\" preserveAspectRatio=\"xMidYMid\"\u003e\n \u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\"\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#FBB32F\" offset=\"0%\"\u003e\u003c/stop\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#C11511\" offset=\"50.4738739%\"\u003e\u003c/stop\u003e\n \u003cstop xmlns=\"http://www.w3.org/2000/svg\" stop-color=\"#C11411\" offset=\"100%\"\u003e\u003c/stop\u003e\n \u003c/linearGradient\u003e\n \u003c/defs\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M128,0.5784 C57.308,0.5784 0,56.4134 0,125.2894 C0,168.3754 22.427,206.3554 56.526,228.7594 L56.526,125.3544 C56.525,125.1964 56.503,125.0444 56.503,124.8874 C56.503,124.7294 56.525,124.5774 56.526,124.4194 L56.526,123.5424 L56.569,123.5424 C57.27,83.3964 88.904,51.0614 127.892,51.0614 C167.319,51.0614 199.28,84.1144 199.28,124.8874 C199.28,165.6594 167.319,198.7124 127.892,198.7124 C112.536,198.7124 98.349,193.6504 86.705,185.1204 L86.705,243.3274 C99.665,247.6314 113.545,250.0004 128,250.0004 C198.692,250.0004 256,194.1654 256,125.2894 C256,56.4134 198.692,0.5784 128,0.5784\" fill=\"url(#linearGradient-1)\"\u003e\u003c/path\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M171.1966,127.4716 C171.1966,151.0616 152.0736,170.1846 128.4836,170.1846 C104.8936,170.1846 85.7696,151.0616 85.7696,127.4716 C85.7696,103.8816 104.8936,84.7586 128.4836,84.7586 C152.0736,84.7586 171.1966,103.8816 171.1966,127.4716\" fill=\"#FCB42F\"\u003e\u003c/path\u003e\n \u003c/g\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" id=\"Layer_1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 256 250\" style=\"enable-background:new 0 0 256 250;\" xml:space=\"preserve\" height=\"20\" width=\"20\"\u003e\n\u003cstyle xmlns=\"http://www.w3.org/2000/svg\" type=\"text/css\"\u003e\n\u0026#x9;.st0{fill:#FFFFFF;}\n\u003c/style\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u0026#x9;\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M128,0.6C57.3,0.6,0,56.4,0,125.3c0,43.1,22.4,81.1,56.5,103.5V125.4c0-0.2,0-0.3,0-0.5c0-0.2,0-0.3,0-0.5\u0026#xA;\u0026#x9;\u0026#x9;v-0.9h0c0.7-40.1,32.3-72.5,71.3-72.5c39.4,0,71.4,33.1,71.4,73.8c0,40.8-32,73.8-71.4,73.8c-15.4,0-29.5-5.1-41.2-13.6v58.2\u0026#xA;\u0026#x9;\u0026#x9;c13,4.3,26.8,6.7,41.3,6.7c70.7,0,128-55.8,128-124.7S198.7,0.6,128,0.6\"\u003e\u003c/path\u003e\n\u0026#x9;\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"st0\" d=\"M171.2,127.5c0,23.6-19.1,42.7-42.7,42.7s-42.7-19.1-42.7-42.7s19.1-42.7,42.7-42.7S171.2,103.9,171.2,127.5\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.8.0" + }, + "name": "ps-db", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/Redis.json b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/Redis.json new file mode 100644 index 00000000000..4b2ab799392 --- /dev/null +++ b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/Redis.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "Redis", + "schema": "{\n \"description\": \"Redis is the Schema for the redis API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"RedisSpec defines the desired state of Redis\",\n \"properties\": {\n \"TLS\": {\n \"description\": \"TLS Configuration for redis instances\",\n \"properties\": {\n \"ca\": {\n \"type\": \"string\"\n },\n \"cert\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"secret\": {\n \"description\": \"Reference to secret which contains the certificates\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"secret\"\n ],\n \"type\": \"object\"\n },\n \"affinity\": {\n \"description\": \"Affinity is a group of affinity scheduling rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"kubernetesConfig\": {\n \"description\": \"KubernetesConfig will be the JSON struct for Basic Redis Config\",\n \"properties\": {\n \"ignoreAnnotations\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"redisSecret\": {\n \"description\": \"ExistingPasswordSecret is the struct to access the existing secret\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"service\": {\n \"description\": \"ServiceConfig define the type of service to be created and its annotations\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"serviceType\": {\n \"enum\": [\n \"LoadBalancer\",\n \"NodePort\",\n \"ClusterIP\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"updateStrategy\": {\n \"description\": \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"redisConfig\": {\n \"description\": \"RedisConfig defines the external configuration of Redis\",\n \"properties\": {\n \"additionalRedisConfig\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"redisExporter\": {\n \"description\": \"RedisExporter interface will have the information for redis exporter related stuff\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"env\": {\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"port\": {\n \"default\": 9121,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"sidecars\": {\n \"items\": {\n \"description\": \"Sidecar for each Redis pods\",\n \"properties\": {\n \"env\": {\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"storage\": {\n \"description\": \"Storage is the inteface to add pvc and pv support in redis\",\n \"properties\": {\n \"keepAfterDelete\": {\n \"type\": \"boolean\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allocatedResourceStatuses\": {\n \"additionalProperties\": {\n \"description\": \"When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.\",\n \"type\": \"string\"\n },\n \"description\": \"allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: \\t* Un-prefixed keys: \\t\\t- storage - the capacity of the volume. \\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \\n ClaimResourceStatus can be in any of following states: \\t- ControllerResizeInProgress: \\t\\tState set when resize controller starts resizing the volume in control-plane. \\t- ControllerResizeFailed: \\t\\tState set when resize has failed in resize controller with a terminal error. \\t- NodeResizePending: \\t\\tState set when resize controller has finished resizing the volume but further resizing of \\t\\tvolume is needed on the node. \\t- NodeResizeInProgress: \\t\\tState set when kubelet starts resizing the volume. \\t- NodeResizeFailed: \\t\\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set \\t\\tNodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: \\t- pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeInProgress\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeFailed\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizePending\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeInProgress\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeFailed\\\" When this field is not set, it means that no resize operation is in progress for the given PVC. \\n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \\n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"granular\"\n },\n \"allocatedResources\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: \\t* Un-prefixed keys: \\t\\t- storage - the capacity of the volume. \\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \\n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \\n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \\n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"capacity represents the actual resources of the underlying volume.\",\n \"type\": \"object\"\n },\n \"conditions\": {\n \"description\": \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaimCondition contains details about state of pvc\",\n \"properties\": {\n \"lastProbeTime\": {\n \"description\": \"lastProbeTime is the time we probed the condition.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"lastTransitionTime\": {\n \"description\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"message is the human-readable message indicating details about last transition.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \\\"ResizeStarted\\\" that means the underlying persistent volume is being resized.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"currentVolumeAttributesClassName\": {\n \"description\": \"currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"type\": \"string\"\n },\n \"modifyVolumeStatus\": {\n \"description\": \"ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"properties\": {\n \"status\": {\n \"description\": \"status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To \\t resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\",\n \"type\": \"string\"\n },\n \"targetVolumeAttributesClassName\": {\n \"description\": \"targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"type\": \"object\"\n },\n \"phase\": {\n \"description\": \"phase represents the current phase of PersistentVolumeClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMount\": {\n \"description\": \"Additional Volume is provided by user that is mounted on the pods\",\n \"properties\": {\n \"mountPath\": {\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volume\": {\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. \\n Alpha, gated by the ClusterTrustBundleProjection feature gate. \\n ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. \\n Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match everything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"kubernetesConfig\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Redis\",\n \"type\": \"object\"\n}", + "version": "redis.redis.opstreelabs.in/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Redis", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/OT-CONTAINER-KIT/redis-operator/master/charts/redis-operator" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "Redis Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/OT-CONTAINER-KIT/redis-operator/master/charts/redis-operator", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.18.0" + }, + "name": "redis-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisCluster.json b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisCluster.json new file mode 100644 index 00000000000..80c1e818bf5 --- /dev/null +++ b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisCluster.json @@ -0,0 +1,195 @@ +{ + "capabilities": [ + { + "description": "Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.", + "displayName": "Performance Test", + "entityState": [ + "instance" + ], + "key": "", + "kind": "action", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "perf-test", + "type": "operator", + "version": "0.7.0" + }, + { + "description": "Configure the workload specific setting of a component", + "displayName": "Workload Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "config", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure Labels And Annotations for the component ", + "displayName": "Labels and Annotations Configuration", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "labels-and-annotations", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View relationships for the component", + "displayName": "Relationships", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "relationship", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "View Component Definition ", + "displayName": "Json Schema", + "entityState": [ + "declaration", + "instance" + ], + "key": "", + "kind": "view", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "definition", + "type": "configuration", + "version": "0.7.0" + }, + { + "description": "Configure the visual styles for the component", + "displayName": "Styling", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Change the shape of the component", + "displayName": "Change Shape", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "mutate", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "shape", + "type": "style", + "version": "0.7.0" + }, + { + "description": "Drag and Drop a component into a parent component in graph view", + "displayName": "Compound Drag And Drop", + "entityState": [ + "declaration" + ], + "key": "", + "kind": "interaction", + "metadata": null, + "schemaVersion": "capability.meshery.io/v1alpha1", + "status": "enabled", + "subType": "compoundDnd", + "type": "graph", + "version": "0.7.0" + } + ], + "component": { + "kind": "RedisCluster", + "schema": "{\n \"description\": \"RedisCluster is the Schema for the redisclusters API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"RedisClusterSpec defines the desired state of RedisCluster\",\n \"properties\": {\n \"TLS\": {\n \"description\": \"TLS Configuration for redis instances\",\n \"properties\": {\n \"ca\": {\n \"type\": \"string\"\n },\n \"cert\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"secret\": {\n \"description\": \"Reference to secret which contains the certificates\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"secret\"\n ],\n \"type\": \"object\"\n },\n \"clusterSize\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"clusterVersion\": {\n \"default\": \"v7\",\n \"type\": \"string\"\n },\n \"kubernetesConfig\": {\n \"description\": \"KubernetesConfig will be the JSON struct for Basic Redis Config\",\n \"properties\": {\n \"ignoreAnnotations\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"redisSecret\": {\n \"description\": \"ExistingPasswordSecret is the struct to access the existing secret\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"service\": {\n \"description\": \"ServiceConfig define the type of service to be created and its annotations\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"serviceType\": {\n \"enum\": [\n \"LoadBalancer\",\n \"NodePort\",\n \"ClusterIP\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"updateStrategy\": {\n \"description\": \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"persistenceEnabled\": {\n \"type\": \"boolean\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"redisExporter\": {\n \"description\": \"RedisExporter interface will have the information for redis exporter related stuff\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"env\": {\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"port\": {\n \"default\": 9121,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"redisFollower\": {\n \"description\": \"RedisFollower interface will have the redis follower configuration\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"Affinity is a group of affinity scheduling rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"pdb\": {\n \"description\": \"RedisPodDisruptionBudget configure a PodDisruptionBudget on the resource (leader/follower)\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"maxUnavailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"redisConfig\": {\n \"description\": \"RedisConfig defines the external configuration of Redis\",\n \"properties\": {\n \"additionalRedisConfig\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"redisLeader\": {\n \"description\": \"RedisLeader interface will have the redis leader configuration\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"Affinity is a group of affinity scheduling rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"pdb\": {\n \"description\": \"RedisPodDisruptionBudget configure a PodDisruptionBudget on the resource (leader/follower)\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"maxUnavailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"redisConfig\": {\n \"description\": \"RedisConfig defines the external configuration of Redis\",\n \"properties\": {\n \"additionalRedisConfig\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"sidecars\": {\n \"items\": {\n \"description\": \"Sidecar for each Redis pods\",\n \"properties\": {\n \"env\": {\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"storage\": {\n \"description\": \"Storage is the inteface to add pvc and pv support in redis\",\n \"properties\": {\n \"keepAfterDelete\": {\n \"type\": \"boolean\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allocatedResourceStatuses\": {\n \"additionalProperties\": {\n \"description\": \"When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.\",\n \"type\": \"string\"\n },\n \"description\": \"allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: \\t* Un-prefixed keys: \\t\\t- storage - the capacity of the volume. \\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \\n ClaimResourceStatus can be in any of following states: \\t- ControllerResizeInProgress: \\t\\tState set when resize controller starts resizing the volume in control-plane. \\t- ControllerResizeFailed: \\t\\tState set when resize has failed in resize controller with a terminal error. \\t- NodeResizePending: \\t\\tState set when resize controller has finished resizing the volume but further resizing of \\t\\tvolume is needed on the node. \\t- NodeResizeInProgress: \\t\\tState set when kubelet starts resizing the volume. \\t- NodeResizeFailed: \\t\\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set \\t\\tNodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: \\t- pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeInProgress\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeFailed\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizePending\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeInProgress\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeFailed\\\" When this field is not set, it means that no resize operation is in progress for the given PVC. \\n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \\n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"granular\"\n },\n \"allocatedResources\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: \\t* Un-prefixed keys: \\t\\t- storage - the capacity of the volume. \\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \\n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \\n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \\n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"capacity represents the actual resources of the underlying volume.\",\n \"type\": \"object\"\n },\n \"conditions\": {\n \"description\": \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaimCondition contains details about state of pvc\",\n \"properties\": {\n \"lastProbeTime\": {\n \"description\": \"lastProbeTime is the time we probed the condition.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"lastTransitionTime\": {\n \"description\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"message is the human-readable message indicating details about last transition.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \\\"ResizeStarted\\\" that means the underlying persistent volume is being resized.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"currentVolumeAttributesClassName\": {\n \"description\": \"currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"type\": \"string\"\n },\n \"modifyVolumeStatus\": {\n \"description\": \"ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"properties\": {\n \"status\": {\n \"description\": \"status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To \\t resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\",\n \"type\": \"string\"\n },\n \"targetVolumeAttributesClassName\": {\n \"description\": \"targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"type\": \"object\"\n },\n \"phase\": {\n \"description\": \"phase represents the current phase of PersistentVolumeClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMount\": {\n \"description\": \"Additional Volume is provided by user that is mounted on the pods\",\n \"properties\": {\n \"mountPath\": {\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volume\": {\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. \\n Alpha, gated by the ClusterTrustBundleProjection feature gate. \\n ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. \\n Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match everything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"clusterSize\",\n \"kubernetesConfig\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Redis Cluster\",\n \"type\": \"object\"\n}", + "version": "redis.redis.opstreelabs.in/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Redis Cluster", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/OT-CONTAINER-KIT/redis-operator/master/charts/redis-operator" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "Redis Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/OT-CONTAINER-KIT/redis-operator/master/charts/redis-operator", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.18.0" + }, + "name": "redis-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisReplication.json b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisReplication.json new file mode 100644 index 00000000000..bf9fc48d68a --- /dev/null +++ b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisReplication.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "RedisReplication", + "schema": "{\n \"description\": \"Redis is the Schema for the redis API\",\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"TLS\": {\n \"description\": \"TLS Configuration for redis instances\",\n \"properties\": {\n \"ca\": {\n \"type\": \"string\"\n },\n \"cert\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"secret\": {\n \"description\": \"Reference to secret which contains the certificates\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"secret\"\n ],\n \"type\": \"object\"\n },\n \"affinity\": {\n \"description\": \"Affinity is a group of affinity scheduling rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterSize\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"kubernetesConfig\": {\n \"description\": \"KubernetesConfig will be the JSON struct for Basic Redis Config\",\n \"properties\": {\n \"ignoreAnnotations\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"redisSecret\": {\n \"description\": \"ExistingPasswordSecret is the struct to access the existing secret\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"service\": {\n \"description\": \"ServiceConfig define the type of service to be created and its annotations\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"serviceType\": {\n \"enum\": [\n \"LoadBalancer\",\n \"NodePort\",\n \"ClusterIP\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"updateStrategy\": {\n \"description\": \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"redisConfig\": {\n \"description\": \"RedisConfig defines the external configuration of Redis\",\n \"properties\": {\n \"additionalRedisConfig\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"redisExporter\": {\n \"description\": \"RedisExporter interface will have the information for redis exporter related stuff\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"env\": {\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"port\": {\n \"default\": 9121,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"add\": {\n \"description\": \"Added capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"description\": \"Removed capabilities\",\n \"items\": {\n \"description\": \"Capability represent POSIX capabilities type\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"sidecars\": {\n \"items\": {\n \"description\": \"Sidecar for each Redis pods\",\n \"properties\": {\n \"env\": {\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"storage\": {\n \"description\": \"Storage is the inteface to add pvc and pv support in redis\",\n \"properties\": {\n \"keepAfterDelete\": {\n \"type\": \"boolean\"\n },\n \"volumeClaimTemplate\": {\n \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"status\": {\n \"description\": \"status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allocatedResourceStatuses\": {\n \"additionalProperties\": {\n \"description\": \"When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.\",\n \"type\": \"string\"\n },\n \"description\": \"allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: \\t* Un-prefixed keys: \\t\\t- storage - the capacity of the volume. \\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \\n ClaimResourceStatus can be in any of following states: \\t- ControllerResizeInProgress: \\t\\tState set when resize controller starts resizing the volume in control-plane. \\t- ControllerResizeFailed: \\t\\tState set when resize has failed in resize controller with a terminal error. \\t- NodeResizePending: \\t\\tState set when resize controller has finished resizing the volume but further resizing of \\t\\tvolume is needed on the node. \\t- NodeResizeInProgress: \\t\\tState set when kubelet starts resizing the volume. \\t- NodeResizeFailed: \\t\\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set \\t\\tNodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: \\t- pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeInProgress\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeFailed\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizePending\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeInProgress\\\" - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeFailed\\\" When this field is not set, it means that no resize operation is in progress for the given PVC. \\n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \\n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"granular\"\n },\n \"allocatedResources\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: \\t* Un-prefixed keys: \\t\\t- storage - the capacity of the volume. \\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \\n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \\n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \\n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"capacity represents the actual resources of the underlying volume.\",\n \"type\": \"object\"\n },\n \"conditions\": {\n \"description\": \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\n \"items\": {\n \"description\": \"PersistentVolumeClaimCondition contains details about state of pvc\",\n \"properties\": {\n \"lastProbeTime\": {\n \"description\": \"lastProbeTime is the time we probed the condition.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"lastTransitionTime\": {\n \"description\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"message is the human-readable message indicating details about last transition.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \\\"ResizeStarted\\\" that means the underlying persistent volume is being resized.\",\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"currentVolumeAttributesClassName\": {\n \"description\": \"currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"type\": \"string\"\n },\n \"modifyVolumeStatus\": {\n \"description\": \"ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.\",\n \"properties\": {\n \"status\": {\n \"description\": \"status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To \\t resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\",\n \"type\": \"string\"\n },\n \"targetVolumeAttributesClassName\": {\n \"description\": \"targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"type\": \"object\"\n },\n \"phase\": {\n \"description\": \"phase represents the current phase of PersistentVolumeClaim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMount\": {\n \"description\": \"Additional Volume is provided by user that is mounted on the pods\",\n \"properties\": {\n \"mountPath\": {\n \"items\": {\n \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n \"properties\": {\n \"mountPath\": {\n \"description\": \"Path within the container at which the volume should be mounted. Must not contain ':'.\",\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"description\": \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"This must match the Name of a Volume.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"description\": \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volume\": {\n \"items\": {\n \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"description\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"cachingMode\": {\n \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n \"type\": \"string\"\n },\n \"diskName\": {\n \"description\": \"diskName is the Name of the data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"description\": \"diskURI is the URI of data disk in the blob storage\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n \"properties\": {\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n \"type\": \"string\"\n },\n \"shareName\": {\n \"description\": \"shareName is the azure share Name\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"monitors\": {\n \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap represents a configMap that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"description\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"Items is a list of downward API volume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"properties\": {\n \"medium\": {\n \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \\n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \\n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \\n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \\n A pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"description\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \\n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \\n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \\n Required, must not be nil.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n \"properties\": {\n \"accessModes\": {\n \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"description\": \"selector is a label query over volumes to consider for binding.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"description\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.\",\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun is Optional: FC target lun number\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n \"properties\": {\n \"driver\": {\n \"description\": \"driver is the name of the driver to use for this volume.\",\n \"type\": \"string\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"options is Optional: this field holds extra command options if any.\",\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n \"properties\": {\n \"datasetName\": {\n \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"description\": \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"partition\": {\n \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"description\": \"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n \"properties\": {\n \"directory\": {\n \"description\": \"directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n \"type\": \"string\"\n },\n \"repository\": {\n \"description\": \"repository is the URL\",\n \"type\": \"string\"\n },\n \"revision\": {\n \"description\": \"revision is the commit hash for the specified revision.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"description\": \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n \"properties\": {\n \"endpoints\": {\n \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"path\": {\n \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"description\": \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.\",\n \"properties\": {\n \"path\": {\n \"description\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"description\": \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n \"type\": \"string\"\n },\n \"iqn\": {\n \"description\": \"iqn is the target iSCSI Qualified Name.\",\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n \"type\": \"string\"\n },\n \"lun\": {\n \"description\": \"lun represents iSCSI Target Lun number.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n },\n \"nfs\": {\n \"description\": \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"properties\": {\n \"path\": {\n \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"boolean\"\n },\n \"server\": {\n \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"properties\": {\n \"claimName\": {\n \"description\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"pdID\": {\n \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"description\": \"volumeID uniquely identifies a Portworx volume\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"description\": \"sources is the list of volume projections\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types\",\n \"properties\": {\n \"clusterTrustBundle\": {\n \"description\": \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. \\n Alpha, gated by the ClusterTrustBundleProjection feature gate. \\n ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. \\n Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \\\"match nothing\\\". If set but empty, interpreted as \\\"match everything\\\".\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.\",\n \"type\": \"boolean\"\n },\n \"path\": {\n \"description\": \"Relative path from the volume root to write the bundle.\",\n \"type\": \"string\"\n },\n \"signerName\": {\n \"description\": \"Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"description\": \"configMap information about the configMap data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"description\": \"downwardAPI information about the downwardAPI data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"Items is a list of DownwardAPIVolume file\",\n \"items\": {\n \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n \"properties\": {\n \"fieldRef\": {\n \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"description\": \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret information about the secret data to project\",\n \"properties\": {\n \"items\": {\n \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n \"properties\": {\n \"audience\": {\n \"description\": \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"description\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n \"properties\": {\n \"group\": {\n \"description\": \"group to map volume access to Default is no group\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"description\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n \"type\": \"string\"\n },\n \"tenant\": {\n \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n \"type\": \"string\"\n },\n \"volume\": {\n \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"description\": \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"keyring\": {\n \"description\": \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"monitors\": {\n \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n \"type\": \"string\"\n },\n \"gateway\": {\n \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n \"type\": \"string\"\n },\n \"system\": {\n \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"description\": \"volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.\",\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"description\": \"volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n \"properties\": {\n \"fsType\": {\n \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"clusterSize\",\n \"kubernetesConfig\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Redis Replication\",\n \"type\": \"object\"\n}", + "version": "redis.redis.opstreelabs.in/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Redis Replication", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/OT-CONTAINER-KIT/redis-operator/master/charts/redis-operator" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "Redis Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/OT-CONTAINER-KIT/redis-operator/master/charts/redis-operator", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.18.0" + }, + "name": "redis-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisSentinel.json b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisSentinel.json new file mode 100644 index 00000000000..0234fe83c73 --- /dev/null +++ b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/components/RedisSentinel.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "RedisSentinel", + "schema": "{\n \"description\": \"Redis is the Schema for the redis API\",\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"TLS\": {\n \"description\": \"TLS Configuration for redis instances\",\n \"properties\": {\n \"ca\": {\n \"type\": \"string\"\n },\n \"cert\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"secret\": {\n \"description\": \"Reference to secret which contains the certificates\",\n \"properties\": {\n \"defaultMode\": {\n \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n \"items\": {\n \"description\": \"Maps a string key to a path within a volume.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the key to project.\",\n \"type\": \"string\"\n },\n \"mode\": {\n \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"secret\"\n ],\n \"type\": \"object\"\n },\n \"affinity\": {\n \"description\": \"Affinity is a group of affinity scheduling rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"description\": \"Describes node affinity scheduling rules for the pod.\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n \"properties\": {\n \"preference\": {\n \"description\": \"A node selector term, associated with the corresponding weight.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n \"items\": {\n \"description\": \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"A list of node selector requirements by node's labels.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"description\": \"A list of node selector requirements by node's fields.\",\n \"items\": {\n \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n \"items\": {\n \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n \"properties\": {\n \"podAffinityTerm\": {\n \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"description\": \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n \"items\": {\n \"description\": \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \\u003ctopologyKey\\u003e matches that of any node on which a pod of the set of pods is running\",\n \"properties\": {\n \"labelSelector\": {\n \"description\": \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"description\": \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"description\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"description\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n \"items\": {\n \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n \"properties\": {\n \"key\": {\n \"description\": \"key is the label key that the selector applies to.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"description\": \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"description\": \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterSize\": {\n \"format\": \"int32\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"kubernetesConfig\": {\n \"description\": \"KubernetesConfig will be the JSON struct for Basic Redis Config\",\n \"properties\": {\n \"ignoreAnnotations\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"redisSecret\": {\n \"description\": \"ExistingPasswordSecret is the struct to access the existing secret\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"service\": {\n \"description\": \"ServiceConfig define the type of service to be created and its annotations\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"serviceType\": {\n \"enum\": [\n \"LoadBalancer\",\n \"NodePort\",\n \"ClusterIP\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"updateStrategy\": {\n \"description\": \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n \"properties\": {\n \"rollingUpdate\": {\n \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"partition\": {\n \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\"\n ],\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"pdb\": {\n \"description\": \"RedisPodDisruptionBudget configure a PodDisruptionBudget on the resource (leader/follower)\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"maxUnavailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n \"properties\": {\n \"exec\": {\n \"description\": \"Exec specifies the action to take.\",\n \"properties\": {\n \"command\": {\n \"description\": \"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"description\": \"GRPC specifies an action involving a GRPC port.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \\n If this is not specified, the default behavior is defined by gRPC.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"description\": \"HTTPGet specifies the http request to perform.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n \"items\": {\n \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n \"properties\": {\n \"name\": {\n \"description\": \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The header field value\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"description\": \"Path to access on the HTTP server.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"redisSentinelConfig\": {\n \"properties\": {\n \"additionalSentinelConfig\": {\n \"type\": \"string\"\n },\n \"downAfterMilliseconds\": {\n \"default\": \"30000\",\n \"type\": \"string\"\n },\n \"failoverTimeout\": {\n \"default\": \"180000\",\n \"type\": \"string\"\n },\n \"masterGroupName\": {\n \"default\": \"myMaster\",\n \"type\": \"string\"\n },\n \"parallelSyncs\": {\n \"default\": \"1\",\n \"type\": \"string\"\n },\n \"quorum\": {\n \"default\": \"2\",\n \"type\": \"string\"\n },\n \"redisPort\": {\n \"default\": \"6379\",\n \"type\": \"string\"\n },\n \"redisReplicationName\": {\n \"type\": \"string\"\n },\n \"redisReplicationPassword\": {\n \"description\": \"EnvVarSource represents a source for the value of an EnvVar.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"redisReplicationName\"\n ],\n \"type\": \"object\"\n },\n \"securityContext\": {\n \"description\": \"PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.\",\n \"properties\": {\n \"fsGroup\": {\n \"description\": \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \\n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \\n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"description\": \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"level\": {\n \"description\": \"Level is SELinux level label that applies to the container.\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role is a SELinux role label that applies to the container.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is a SELinux type label that applies to the container.\",\n \"type\": \"string\"\n },\n \"user\": {\n \"description\": \"User is a SELinux user label that applies to the container.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n \"properties\": {\n \"localhostProfile\": {\n \"description\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"type indicates which kind of seccomp profile will be applied. Valid options are: \\n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n \"items\": {\n \"description\": \"Sysctl defines a kernel parameter to be set\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of a property to set\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of a property to set\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"description\": \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"description\": \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"sidecars\": {\n \"items\": {\n \"description\": \"Sidecar for each Redis pods\",\n \"properties\": {\n \"env\": {\n \"items\": {\n \"description\": \"EnvVar represents an environment variable present in a Container.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Selects a key of a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key to select.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"description\": \"Path of the field to select in the specified API version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n \"properties\": {\n \"containerName\": {\n \"description\": \"Container name: required for volumes, optional for env vars\",\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"description\": \"Required: resource to select\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a secret in the pod's namespace\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key of the secret to select from. Must be a valid secret key.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?\",\n \"type\": \"string\"\n },\n \"optional\": {\n \"description\": \"Specify whether the Secret or its key must be defined\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"PullPolicy describes a policy for if/when to pull a container image\",\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"resources\": {\n \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \\n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \\n This field is immutable. It can only be set for containers.\",\n \"items\": {\n \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"image\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tolerations\": {\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"clusterSize\",\n \"kubernetesConfig\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Redis Sentinel\",\n \"type\": \"object\"\n}", + "version": "redis.redis.opstreelabs.in/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Redis Sentinel", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/OT-CONTAINER-KIT/redis-operator/master/charts/redis-operator" + }, + "model": { + "category": { + "name": "Database" + }, + "displayName": "Redis Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "source_uri": "git://github.com/OT-CONTAINER-KIT/redis-operator/master/charts/redis-operator", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.18.0" + }, + "name": "redis-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "svgColor": "\u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cg clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003cpath d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"/\u003e\n\u003c/g\u003e\n\u003cdefs\u003e\n\u003cclipPath id=\"clip0_36_80\"\u003e\n\u003crect width=\"32\" height=\"32\" fill=\"white\"/\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003cpath d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"/\u003e\u003cpath d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/redis-operator/v0.18.0/v1.0.0/model.json b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/model.json new file mode 100644 index 00000000000..c2e900149e2 --- /dev/null +++ b/server/meshmodel/redis-operator/v0.18.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Database" + }, + "displayName": "Redis Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#00B39F", + "secondaryColor": "#00D3A9", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\n\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#clip0_36_80)\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 7.69351V15.2015L22.9702 11.4346L16.4632 7.69351Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 16.7705V24.3157L23.0307 20.5607L16.4632 16.7705Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 15.1502V7.75632L9.10194 11.4416L15.5274 15.1502Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.63699 24.2878C3.89756 26.3157 5.60178 28.031 7.62134 29.3047V21.4033L2.63699 24.2878Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 24.2785V16.8264L9.08579 20.556L15.5274 24.2785Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 28.8344L15.0829 25.1049L8.55965 21.3335V28.8344Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4753 28.8742V21.3848L16.9615 25.1096L23.4753 28.8742Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.852 23.4194C30.9655 21.341 31.5949 19.0378 31.6935 16.6819L24.9119 20.5651L29.852 23.4194Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 19.7691L30.96 16.0256L24.4136 12.2634V19.7691Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4755 10.6455V3.20041L16.9919 6.91827L23.4755 10.6455Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4754 19.7364V12.2239L16.9779 15.986L23.4754 19.7364Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 12.2099V19.7784L15.1061 15.9882L8.55965 12.2099Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.5274 0.285706C13.1176 0.353534 10.756 0.977397 8.6271 2.10855L15.5274 6.06621V0.285706Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.55965 3.1492V10.6734L15.1107 6.91597L8.55965 3.1492Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62134 2.69299C5.60228 3.96735 3.89818 5.6826 2.63699 7.7099L7.62134 10.5873V2.69299Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M23.4335 2.14811C21.2869 0.992986 18.9001 0.355226 16.4632 0.285706V6.14069L23.4335 2.14811Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0.285713 16.5517C0.367085 18.9754 1.01023 21.3471 2.16447 23.4799L7.21396 20.5559L0.285713 16.5517Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M2.16447 8.51996C1.01384 10.6433 0.370833 13.0043 0.285713 15.4178L7.22097 11.4393L2.16447 8.51996Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.61544 29.8822C10.7469 31.0189 13.1128 31.6461 15.5274 31.7143V25.9291L8.61544 29.8822Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.3675 7.73539C28.1143 5.71396 26.4208 4.00147 24.4136 2.72543V10.5987L29.3675 7.73539Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M24.4136 29.2791C26.4312 27.994 28.1314 26.2684 29.3863 24.2321L24.4136 21.3591V29.2791Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M31.7143 15.3738C31.6251 12.9835 30.9879 10.6458 29.8518 8.54102L24.8441 11.4325L31.7143 15.3738Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.4632 31.7143C18.8725 31.6467 21.2333 31.0229 23.3613 29.8914L16.4632 25.8942V31.7143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M7.62141 19.711V12.2892L1.17738 15.9838L7.62141 19.711Z\" fill=\"white\" fill-opacity=\"0.8\"\u003e\u003c/path\u003e\n\u003c/g\u003e\n\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"clip0_36_80\"\u003e\n\u003crect xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" fill=\"white\"\u003e\u003c/rect\u003e\n\u003c/clipPath\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" fill=\"none\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z\" fill=\"#fff\" fill-opacity=\".8\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v0.18.0" + }, + "name": "redis-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "enabled", + "subCategory": "App Definition and Development", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/Broker.json b/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/Broker.json new file mode 100644 index 00000000000..3fd48e52e57 --- /dev/null +++ b/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/Broker.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Broker", + "schema": "{\n \"description\": \"Broker is the Schema for the brokers API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"BrokerSpec defines the desired state of Broker\",\n \"properties\": {\n \"components\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"defaultCustomDomains\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"defaultGlobalnetClusterSize\": {\n \"type\": \"integer\"\n },\n \"globalnetCIDRRange\": {\n \"type\": \"string\"\n },\n \"globalnetEnabled\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Broker\",\n \"type\": \"object\"\n}", + "version": "submariner.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Broker", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/submariner-io/submariner-charts/devel/submariner-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Schemahero", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#1d4493", + "secondaryColor": "#34579e", + "shape": "circle", + "source_uri": "git://github.com/submariner-io/submariner-charts/devel/submariner-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 391 395\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.746 102.001L45.7978 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.145 255.309L234.328 227.711L237.136 213.26L370.953 240.858L368.145 255.309Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6176 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M262.616 215.826C262.616 231.656 249.78 244.49 233.944 244.49C218.109 244.49 205.273 231.656 205.273 215.826C205.273 199.995 218.109 187.161 233.944 187.161C249.78 187.161 262.616 199.995 262.616 215.826Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M390.889 250.064C390.889 260.859 382.136 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.136 230.518 390.889 239.27 390.889 250.064Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M60.3448 95.8258C60.3448 106.081 52.0294 114.394 41.7717 114.394C31.5141 114.394 23.1986 106.081 23.1986 95.8258C23.1986 85.5709 31.5141 77.2577 41.7717 77.2577C52.0294 77.2577 60.3448 85.5709 60.3448 95.8258Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 391 395\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.7461 102.001L45.7979 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.146 255.309L234.329 227.711L237.136 213.26L370.953 240.858L368.146 255.309Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6177 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M262.616 215.826C262.616 231.656 249.779 244.49 233.944 244.49C218.109 244.49 205.272 231.656 205.272 215.826C205.272 199.995 218.109 187.161 233.944 187.161C249.779 187.161 262.616 199.995 262.616 215.826Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M390.889 250.064C390.889 260.859 382.135 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.135 230.518 390.889 239.27 390.889 250.064Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M60.3447 95.8258C60.3447 106.081 52.0292 114.394 41.7716 114.394C31.514 114.394 23.1985 106.081 23.1985 95.8258C23.1985 85.5709 31.514 77.2577 41.7716 77.2577C52.0292 77.2577 60.3447 85.5709 60.3447 95.8258Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.19.0-m2" + }, + "name": "schemahero", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#1d4493", + "secondaryColor": "#34579e", + "shape": "circle", + "svgColor": "\u003csvg width=\"391\" height=\"395\" viewBox=\"0 0 391 395\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.746 102.001L45.7978 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.145 255.309L234.328 227.711L237.136 213.26L370.953 240.858L368.145 255.309Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6176 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"#326DE6\"/\u003e\n\u003cpath d=\"M262.616 215.826C262.616 231.656 249.78 244.49 233.944 244.49C218.109 244.49 205.273 231.656 205.273 215.826C205.273 199.995 218.109 187.161 233.944 187.161C249.78 187.161 262.616 199.995 262.616 215.826Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M390.889 250.064C390.889 260.859 382.136 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.136 230.518 390.889 239.27 390.889 250.064Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M60.3448 95.8258C60.3448 106.081 52.0294 114.394 41.7717 114.394C31.5141 114.394 23.1986 106.081 23.1986 95.8258C23.1986 85.5709 31.5141 77.2577 41.7717 77.2577C52.0294 77.2577 60.3448 85.5709 60.3448 95.8258Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"#1D4493\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"391\" height=\"395\" viewBox=\"0 0 391 395\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.7461 102.001L45.7979 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.146 255.309L234.329 227.711L237.136 213.26L370.953 240.858L368.146 255.309Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6177 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M262.616 215.826C262.616 231.656 249.779 244.49 233.944 244.49C218.109 244.49 205.272 231.656 205.272 215.826C205.272 199.995 218.109 187.161 233.944 187.161C249.779 187.161 262.616 199.995 262.616 215.826Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M390.889 250.064C390.889 260.859 382.135 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.135 230.518 390.889 239.27 390.889 250.064Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M60.3447 95.8258C60.3447 106.081 52.0292 114.394 41.7716 114.394C31.514 114.394 23.1985 106.081 23.1985 95.8258C23.1985 85.5709 31.514 77.2577 41.7716 77.2577C52.0292 77.2577 60.3447 85.5709 60.3447 95.8258Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"white\"/\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/ServiceDiscovery.json b/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/ServiceDiscovery.json new file mode 100644 index 00000000000..14dfd77bf1b --- /dev/null +++ b/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/ServiceDiscovery.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ServiceDiscovery", + "schema": "{\n \"description\": \"ServiceDiscovery is the Schema for the servicediscoveries API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ServiceDiscoverySpec defines the desired state of ServiceDiscovery\",\n \"properties\": {\n \"brokerK8sApiServer\": {\n \"type\": \"string\"\n },\n \"brokerK8sApiServerToken\": {\n \"type\": \"string\"\n },\n \"brokerK8sCA\": {\n \"type\": \"string\"\n },\n \"brokerK8sInsecure\": {\n \"type\": \"boolean\"\n },\n \"brokerK8sRemoteNamespace\": {\n \"type\": \"string\"\n },\n \"clusterID\": {\n \"type\": \"string\"\n },\n \"coreDNSCustomConfig\": {\n \"properties\": {\n \"configMapName\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"customDomains\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"debug\": {\n \"type\": \"boolean\"\n },\n \"globalnetEnabled\": {\n \"type\": \"boolean\"\n },\n \"imageOverrides\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"brokerK8sApiServer\",\n \"brokerK8sApiServerToken\",\n \"brokerK8sCA\",\n \"brokerK8sRemoteNamespace\",\n \"clusterID\",\n \"debug\",\n \"namespace\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Service Discovery\",\n \"type\": \"object\"\n}", + "version": "submariner.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Service Discovery", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/submariner-io/submariner-charts/devel/submariner-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Schemahero", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#1d4493", + "secondaryColor": "#34579e", + "shape": "circle", + "source_uri": "git://github.com/submariner-io/submariner-charts/devel/submariner-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 391 395\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.746 102.001L45.7978 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.145 255.309L234.328 227.711L237.136 213.26L370.953 240.858L368.145 255.309Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6176 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M262.616 215.826C262.616 231.656 249.78 244.49 233.944 244.49C218.109 244.49 205.273 231.656 205.273 215.826C205.273 199.995 218.109 187.161 233.944 187.161C249.78 187.161 262.616 199.995 262.616 215.826Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M390.889 250.064C390.889 260.859 382.136 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.136 230.518 390.889 239.27 390.889 250.064Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M60.3448 95.8258C60.3448 106.081 52.0294 114.394 41.7717 114.394C31.5141 114.394 23.1986 106.081 23.1986 95.8258C23.1986 85.5709 31.5141 77.2577 41.7717 77.2577C52.0294 77.2577 60.3448 85.5709 60.3448 95.8258Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 391 395\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.7461 102.001L45.7979 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.146 255.309L234.329 227.711L237.136 213.26L370.953 240.858L368.146 255.309Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6177 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M262.616 215.826C262.616 231.656 249.779 244.49 233.944 244.49C218.109 244.49 205.272 231.656 205.272 215.826C205.272 199.995 218.109 187.161 233.944 187.161C249.779 187.161 262.616 199.995 262.616 215.826Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M390.889 250.064C390.889 260.859 382.135 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.135 230.518 390.889 239.27 390.889 250.064Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M60.3447 95.8258C60.3447 106.081 52.0292 114.394 41.7716 114.394C31.514 114.394 23.1985 106.081 23.1985 95.8258C23.1985 85.5709 31.514 77.2577 41.7716 77.2577C52.0292 77.2577 60.3447 85.5709 60.3447 95.8258Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.19.0-m2" + }, + "name": "schemahero", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#1d4493", + "secondaryColor": "#34579e", + "shape": "circle", + "svgColor": "\u003csvg width=\"391\" height=\"395\" viewBox=\"0 0 391 395\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.746 102.001L45.7978 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.145 255.309L234.328 227.711L237.136 213.26L370.953 240.858L368.145 255.309Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6176 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"#326DE6\"/\u003e\n\u003cpath d=\"M262.616 215.826C262.616 231.656 249.78 244.49 233.944 244.49C218.109 244.49 205.273 231.656 205.273 215.826C205.273 199.995 218.109 187.161 233.944 187.161C249.78 187.161 262.616 199.995 262.616 215.826Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M390.889 250.064C390.889 260.859 382.136 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.136 230.518 390.889 239.27 390.889 250.064Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M60.3448 95.8258C60.3448 106.081 52.0294 114.394 41.7717 114.394C31.5141 114.394 23.1986 106.081 23.1986 95.8258C23.1986 85.5709 31.5141 77.2577 41.7717 77.2577C52.0294 77.2577 60.3448 85.5709 60.3448 95.8258Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"#1D4493\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"391\" height=\"395\" viewBox=\"0 0 391 395\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.7461 102.001L45.7979 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.146 255.309L234.329 227.711L237.136 213.26L370.953 240.858L368.146 255.309Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6177 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M262.616 215.826C262.616 231.656 249.779 244.49 233.944 244.49C218.109 244.49 205.272 231.656 205.272 215.826C205.272 199.995 218.109 187.161 233.944 187.161C249.779 187.161 262.616 199.995 262.616 215.826Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M390.889 250.064C390.889 260.859 382.135 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.135 230.518 390.889 239.27 390.889 250.064Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M60.3447 95.8258C60.3447 106.081 52.0292 114.394 41.7716 114.394C31.514 114.394 23.1985 106.081 23.1985 95.8258C23.1985 85.5709 31.514 77.2577 41.7716 77.2577C52.0292 77.2577 60.3447 85.5709 60.3447 95.8258Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"white\"/\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/Submariner.json b/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/Submariner.json new file mode 100644 index 00000000000..b49b90d7d24 --- /dev/null +++ b/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/components/Submariner.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Submariner", + "schema": "{\n \"description\": \"Submariner is the Schema for the submariners API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"SubmarinerSpec defines the desired state of Submariner\",\n \"properties\": {\n \"broker\": {\n \"type\": \"string\"\n },\n \"brokerK8sApiServer\": {\n \"type\": \"string\"\n },\n \"brokerK8sApiServerToken\": {\n \"type\": \"string\"\n },\n \"brokerK8sCA\": {\n \"type\": \"string\"\n },\n \"brokerK8sInsecure\": {\n \"type\": \"boolean\"\n },\n \"brokerK8sRemoteNamespace\": {\n \"type\": \"string\"\n },\n \"cableDriver\": {\n \"type\": \"string\"\n },\n \"ceIPSecDebug\": {\n \"type\": \"boolean\"\n },\n \"ceIPSecForceUDPEncaps\": {\n \"type\": \"boolean\"\n },\n \"ceIPSecIKEPort\": {\n \"type\": \"integer\"\n },\n \"ceIPSecNATTPort\": {\n \"type\": \"integer\"\n },\n \"ceIPSecPSK\": {\n \"type\": \"string\"\n },\n \"ceIPSecPreferredServer\": {\n \"type\": \"boolean\"\n },\n \"clusterCIDR\": {\n \"type\": \"string\"\n },\n \"clusterID\": {\n \"type\": \"string\"\n },\n \"colorCodes\": {\n \"type\": \"string\"\n },\n \"connectionHealthCheck\": {\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"intervalSeconds\": {\n \"description\": \"The interval at which health check pings are sent.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"maxPacketLossCount\": {\n \"description\": \"The maximum number of packets lost at which the health checker will mark the connection as down.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"coreDNSCustomConfig\": {\n \"properties\": {\n \"configMapName\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"customDomains\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"debug\": {\n \"type\": \"boolean\"\n },\n \"globalCIDR\": {\n \"type\": \"string\"\n },\n \"imageOverrides\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"loadBalancerEnabled\": {\n \"type\": \"boolean\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"natEnabled\": {\n \"type\": \"boolean\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"serviceCIDR\": {\n \"type\": \"string\"\n },\n \"serviceDiscoveryEnabled\": {\n \"type\": \"boolean\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"broker\",\n \"brokerK8sApiServer\",\n \"brokerK8sApiServerToken\",\n \"brokerK8sCA\",\n \"brokerK8sRemoteNamespace\",\n \"ceIPSecDebug\",\n \"ceIPSecPSK\",\n \"clusterCIDR\",\n \"clusterID\",\n \"debug\",\n \"namespace\",\n \"natEnabled\",\n \"serviceCIDR\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Submariner\",\n \"type\": \"object\"\n}", + "version": "submariner.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Submariner", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/submariner-io/submariner-charts/devel/submariner-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Schemahero", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#1d4493", + "secondaryColor": "#34579e", + "shape": "circle", + "source_uri": "git://github.com/submariner-io/submariner-charts/devel/submariner-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 391 395\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.746 102.001L45.7978 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.145 255.309L234.328 227.711L237.136 213.26L370.953 240.858L368.145 255.309Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6176 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M262.616 215.826C262.616 231.656 249.78 244.49 233.944 244.49C218.109 244.49 205.273 231.656 205.273 215.826C205.273 199.995 218.109 187.161 233.944 187.161C249.78 187.161 262.616 199.995 262.616 215.826Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M390.889 250.064C390.889 260.859 382.136 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.136 230.518 390.889 239.27 390.889 250.064Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M60.3448 95.8258C60.3448 106.081 52.0294 114.394 41.7717 114.394C31.5141 114.394 23.1986 106.081 23.1986 95.8258C23.1986 85.5709 31.5141 77.2577 41.7717 77.2577C52.0294 77.2577 60.3448 85.5709 60.3448 95.8258Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 391 395\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.7461 102.001L45.7979 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.146 255.309L234.329 227.711L237.136 213.26L370.953 240.858L368.146 255.309Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6177 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M262.616 215.826C262.616 231.656 249.779 244.49 233.944 244.49C218.109 244.49 205.272 231.656 205.272 215.826C205.272 199.995 218.109 187.161 233.944 187.161C249.779 187.161 262.616 199.995 262.616 215.826Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M390.889 250.064C390.889 260.859 382.135 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.135 230.518 390.889 239.27 390.889 250.064Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M60.3447 95.8258C60.3447 106.081 52.0292 114.394 41.7716 114.394C31.514 114.394 23.1985 106.081 23.1985 95.8258C23.1985 85.5709 31.514 77.2577 41.7716 77.2577C52.0292 77.2577 60.3447 85.5709 60.3447 95.8258Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.19.0-m2" + }, + "name": "schemahero", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#1d4493", + "secondaryColor": "#34579e", + "shape": "circle", + "svgColor": "\u003csvg width=\"391\" height=\"395\" viewBox=\"0 0 391 395\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.746 102.001L45.7978 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.145 255.309L234.328 227.711L237.136 213.26L370.953 240.858L368.145 255.309Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6176 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"#326DE6\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"#326DE6\"/\u003e\n\u003cpath d=\"M262.616 215.826C262.616 231.656 249.78 244.49 233.944 244.49C218.109 244.49 205.273 231.656 205.273 215.826C205.273 199.995 218.109 187.161 233.944 187.161C249.78 187.161 262.616 199.995 262.616 215.826Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M390.889 250.064C390.889 260.859 382.136 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.136 230.518 390.889 239.27 390.889 250.064Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M60.3448 95.8258C60.3448 106.081 52.0294 114.394 41.7717 114.394C31.5141 114.394 23.1986 106.081 23.1986 95.8258C23.1986 85.5709 31.5141 77.2577 41.7717 77.2577C52.0294 77.2577 60.3448 85.5709 60.3448 95.8258Z\" fill=\"#1D4493\"/\u003e\n\u003cpath d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"#1D4493\"/\u003e\n\u003c/svg\u003e", + "svgWhite": "\u003csvg width=\"391\" height=\"395\" viewBox=\"0 0 391 395\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.7461 102.001L45.7979 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.146 255.309L234.329 227.711L237.136 213.26L370.953 240.858L368.146 255.309Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6177 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"white\"/\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M262.616 215.826C262.616 231.656 249.779 244.49 233.944 244.49C218.109 244.49 205.272 231.656 205.272 215.826C205.272 199.995 218.109 187.161 233.944 187.161C249.779 187.161 262.616 199.995 262.616 215.826Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M390.889 250.064C390.889 260.859 382.135 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.135 230.518 390.889 239.27 390.889 250.064Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M60.3447 95.8258C60.3447 106.081 52.0292 114.394 41.7716 114.394C31.514 114.394 23.1985 106.081 23.1985 95.8258C23.1985 85.5709 31.514 77.2577 41.7716 77.2577C52.0292 77.2577 60.3447 85.5709 60.3447 95.8258Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"white\"/\u003e\n\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/model.json b/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/model.json new file mode 100644 index 00000000000..f8c3c9428d2 --- /dev/null +++ b/server/meshmodel/schemahero/v0.19.0-m2/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "App Definition and Development" + }, + "displayName": "Schemahero", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#1d4493", + "secondaryColor": "#34579e", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 391 395\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.746 102.001L45.7978 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.145 255.309L234.328 227.711L237.136 213.26L370.953 240.858L368.145 255.309Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6176 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"#326DE6\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M262.616 215.826C262.616 231.656 249.78 244.49 233.944 244.49C218.109 244.49 205.273 231.656 205.273 215.826C205.273 199.995 218.109 187.161 233.944 187.161C249.78 187.161 262.616 199.995 262.616 215.826Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M390.889 250.064C390.889 260.859 382.136 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.136 230.518 390.889 239.27 390.889 250.064Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M60.3448 95.8258C60.3448 106.081 52.0294 114.394 41.7717 114.394C31.5141 114.394 23.1986 106.081 23.1986 95.8258C23.1986 85.5709 31.5141 77.2577 41.7717 77.2577C52.0294 77.2577 60.3448 85.5709 60.3448 95.8258Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"#1D4493\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 391 395\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M195.387 25.6297C193.303 24.5826 190.847 24.5826 188.764 25.6297L52.145 94.2978C50.1768 95.2871 48.7542 97.1046 48.2669 99.2524L15.0381 245.722C14.5436 247.902 15.0653 250.188 16.4566 251.938L110.02 369.614C111.418 371.373 113.543 372.399 115.791 372.399H268.36C270.608 372.399 272.733 371.373 274.131 369.614L367.694 251.938C369.085 250.188 369.607 247.902 369.113 245.722L335.884 99.2524C335.396 97.1046 333.974 95.2871 332.006 94.2978L195.387 25.6297ZM182.141 12.4602C188.391 9.31869 195.76 9.31869 202.01 12.4602L338.629 81.1283C344.533 84.0962 348.801 89.5485 350.263 95.9921L383.492 242.461C384.975 249.001 383.41 255.86 379.236 261.11L285.673 378.786C281.478 384.064 275.103 387.139 268.36 387.139H115.791C109.048 387.139 102.673 384.064 98.4774 378.786L4.91444 261.11C0.740681 255.86 -0.824562 249.001 0.659069 242.461L33.8879 95.9921C35.3497 89.5485 39.6174 84.0962 45.5221 81.1283L182.141 12.4602Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M200.24 18.1375L247.022 238.387L37.7461 102.001L45.7979 89.6528L225.189 206.563L185.818 21.1993L200.24 18.1375Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M368.146 255.309L234.329 227.711L237.136 213.26L370.953 240.858L368.146 255.309Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M241.154 225.143L116.409 378.014L104.984 368.696L229.729 215.825L241.154 225.143Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M103.542 374.522L34.6177 97.6058L48.9256 94.0464L117.85 370.963L103.542 374.522Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M361.881 262.227L130.887 374.522L125.421 362.36L356.415 250.065L361.881 262.227Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M262.616 215.826C262.616 231.656 249.779 244.49 233.944 244.49C218.109 244.49 205.272 231.656 205.272 215.826C205.272 199.995 218.109 187.161 233.944 187.161C249.779 187.161 262.616 199.995 262.616 215.826Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M390.889 250.064C390.889 260.859 382.135 269.61 371.338 269.61C360.54 269.61 351.786 260.859 351.786 250.064C351.786 239.27 360.54 230.518 371.338 230.518C382.135 230.518 390.889 239.27 390.889 250.064Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M136.314 370.333C136.314 383.567 125.583 394.295 112.345 394.295C99.108 394.295 88.377 383.567 88.377 370.333C88.377 357.099 99.108 346.371 112.345 346.371C125.583 346.371 136.314 357.099 136.314 370.333Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M60.3447 95.8258C60.3447 106.081 52.0292 114.394 41.7716 114.394C31.514 114.394 23.1985 106.081 23.1985 95.8258C23.1985 85.5709 31.514 77.2577 41.7716 77.2577C52.0292 77.2577 60.3447 85.5709 60.3447 95.8258Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M209.512 18.1376C209.512 27.7652 201.706 35.5699 192.075 35.5699C182.445 35.5699 174.638 27.7652 174.638 18.1376C174.638 8.50997 182.445 0.705261 192.075 0.705261C201.706 0.705261 209.512 8.50997 209.512 18.1376Z\" fill=\"white\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "v0.19.0-m2" + }, + "name": "schemahero", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Database", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/Kafka.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/Kafka.json new file mode 100644 index 00000000000..12e5b474b89 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/Kafka.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Kafka", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the Kafka and ZooKeeper clusters, and Topic Operator.\",\n \"properties\": {\n \"clientsCa\": {\n \"description\": \"Configuration of the clients certificate authority.\",\n \"properties\": {\n \"certificateExpirationPolicy\": {\n \"description\": \"How should CA certificate expiration be handled when `generateCertificateAuthority=true`. The default is for a new CA certificate to be generated reusing the existing private key.\",\n \"enum\": [\n \"renew-certificate\",\n \"replace-key\"\n ],\n \"type\": \"string\"\n },\n \"generateCertificateAuthority\": {\n \"description\": \"If true then Certificate Authority certificates will be generated automatically. Otherwise the user will need to provide a Secret with the CA certificate. Default is true.\",\n \"type\": \"boolean\"\n },\n \"generateSecretOwnerReference\": {\n \"description\": \"If `true`, the Cluster and Client CA Secrets are configured with the `ownerReference` set to the `Kafka` resource. If the `Kafka` resource is deleted when `true`, the CA Secrets are also deleted. If `false`, the `ownerReference` is disabled. If the `Kafka` resource is deleted when `false`, the CA Secrets are retained and available for reuse. Default is `true`.\",\n \"type\": \"boolean\"\n },\n \"renewalDays\": {\n \"description\": \"The number of days in the certificate renewal period. This is the number of days before the a certificate expires during which renewal actions may be performed. When `generateCertificateAuthority` is true, this will cause the generation of a new certificate. When `generateCertificateAuthority` is true, this will cause extra logging at WARN level about the pending certificate expiry. Default is 30.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"validityDays\": {\n \"description\": \"The number of days generated certificates should be valid for. The default is 365.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterCa\": {\n \"description\": \"Configuration of the cluster certificate authority.\",\n \"properties\": {\n \"certificateExpirationPolicy\": {\n \"description\": \"How should CA certificate expiration be handled when `generateCertificateAuthority=true`. The default is for a new CA certificate to be generated reusing the existing private key.\",\n \"enum\": [\n \"renew-certificate\",\n \"replace-key\"\n ],\n \"type\": \"string\"\n },\n \"generateCertificateAuthority\": {\n \"description\": \"If true then Certificate Authority certificates will be generated automatically. Otherwise the user will need to provide a Secret with the CA certificate. Default is true.\",\n \"type\": \"boolean\"\n },\n \"generateSecretOwnerReference\": {\n \"description\": \"If `true`, the Cluster and Client CA Secrets are configured with the `ownerReference` set to the `Kafka` resource. If the `Kafka` resource is deleted when `true`, the CA Secrets are also deleted. If `false`, the `ownerReference` is disabled. If the `Kafka` resource is deleted when `false`, the CA Secrets are retained and available for reuse. Default is `true`.\",\n \"type\": \"boolean\"\n },\n \"renewalDays\": {\n \"description\": \"The number of days in the certificate renewal period. This is the number of days before the a certificate expires during which renewal actions may be performed. When `generateCertificateAuthority` is true, this will cause the generation of a new certificate. When `generateCertificateAuthority` is true, this will cause extra logging at WARN level about the pending certificate expiry. Default is 30.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"validityDays\": {\n \"description\": \"The number of days generated certificates should be valid for. The default is 365.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"cruiseControl\": {\n \"description\": \"Configuration for Cruise Control deployment. Deploys a Cruise Control instance when specified.\",\n \"properties\": {\n \"apiUsers\": {\n \"description\": \"Configuration of the Cruise Control REST API users.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Type of the Cruise Control API users configuration. Supported format is: `hashLoginService`.\",\n \"enum\": [\n \"hashLoginService\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Secret from which the custom Cruise Control API authentication credentials are read.\",\n \"properties\": {\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a Secret in the resource's namespace.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"brokerCapacity\": {\n \"description\": \"The Cruise Control `brokerCapacity` configuration.\",\n \"properties\": {\n \"cpu\": {\n \"description\": \"Broker capacity for CPU resource in cores or millicores. For example, 1, 1.500, 1500m. For more information on valid CPU resource units see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu.\",\n \"pattern\": \"^[0-9]+([.][0-9]{0,3}|[m]?)$\",\n \"type\": \"string\"\n },\n \"cpuUtilization\": {\n \"description\": \"Broker capacity for CPU resource utilization as a percentage (0 - 100).\",\n \"maximum\": 100,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"disk\": {\n \"description\": \"Broker capacity for disk in bytes. Use a number value with either standard Kubernetes byte units (K, M, G, or T), their bibyte (power of two) equivalents (Ki, Mi, Gi, or Ti), or a byte value with or without E notation. For example, 100000M, 100000Mi, 104857600000, or 1e+11.\",\n \"pattern\": \"^[0-9]+([.][0-9]*)?([KMGTPE]i?|e[0-9]+)?$\",\n \"type\": \"string\"\n },\n \"inboundNetwork\": {\n \"description\": \"Broker capacity for inbound network throughput in bytes per second. Use an integer value with standard Kubernetes byte units (K, M, G) or their bibyte (power of two) equivalents (Ki, Mi, Gi) per second. For example, 10000KiB/s.\",\n \"pattern\": \"^[0-9]+([KMG]i?)?B/s$\",\n \"type\": \"string\"\n },\n \"outboundNetwork\": {\n \"description\": \"Broker capacity for outbound network throughput in bytes per second. Use an integer value with standard Kubernetes byte units (K, M, G) or their bibyte (power of two) equivalents (Ki, Mi, Gi) per second. For example, 10000KiB/s.\",\n \"pattern\": \"^[0-9]+([KMG]i?)?B/s$\",\n \"type\": \"string\"\n },\n \"overrides\": {\n \"description\": \"Overrides for individual brokers. The `overrides` property lets you specify a different capacity configuration for different brokers.\",\n \"items\": {\n \"properties\": {\n \"brokers\": {\n \"description\": \"List of Kafka brokers (broker identifiers).\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"cpu\": {\n \"description\": \"Broker capacity for CPU resource in cores or millicores. For example, 1, 1.500, 1500m. For more information on valid CPU resource units see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu.\",\n \"pattern\": \"^[0-9]+([.][0-9]{0,3}|[m]?)$\",\n \"type\": \"string\"\n },\n \"inboundNetwork\": {\n \"description\": \"Broker capacity for inbound network throughput in bytes per second. Use an integer value with standard Kubernetes byte units (K, M, G) or their bibyte (power of two) equivalents (Ki, Mi, Gi) per second. For example, 10000KiB/s.\",\n \"pattern\": \"^[0-9]+([KMG]i?)?B/s$\",\n \"type\": \"string\"\n },\n \"outboundNetwork\": {\n \"description\": \"Broker capacity for outbound network throughput in bytes per second. Use an integer value with standard Kubernetes byte units (K, M, G) or their bibyte (power of two) equivalents (Ki, Mi, Gi) per second. For example, 10000KiB/s.\",\n \"pattern\": \"^[0-9]+([KMG]i?)?B/s$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"brokers\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"config\": {\n \"description\": \"The Cruise Control configuration. For a full list of configuration options refer to https://github.com/linkedin/cruise-control/wiki/Configurations. Note that properties with the following prefixes cannot be set: bootstrap.servers, client.id, zookeeper., network., security., failed.brokers.zk.path,webserver.http., webserver.api.urlprefix, webserver.session.path, webserver.accesslog., two.step., request.reason.required,metric.reporter.sampler.bootstrap.servers, capacity.config.file, self.healing., ssl., kafka.broker.failure.detection.enable, topic.config.provider.class (with the exception of: ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols, webserver.http.cors.enabled, webserver.http.cors.origin, webserver.http.cors.exposeheaders, webserver.security.enable, webserver.ssl.enable).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"The container image used for Cruise Control pods. If no image name is explicitly specified, the image name corresponds to the name specified in the Cluster Operator configuration. If an image name is not defined in the Cluster Operator configuration, a default value is used.\",\n \"type\": \"string\"\n },\n \"jvmOptions\": {\n \"description\": \"JVM Options for the Cruise Control container.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking for the Cruise Control container.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration (Log4j 2) for Cruise Control.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"metricsConfig\": {\n \"description\": \"Metrics configuration.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Metrics type. Only 'jmxPrometheusExporter' supported currently.\",\n \"enum\": [\n \"jmxPrometheusExporter\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"ConfigMap entry where the Prometheus JMX Exporter configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking for the Cruise Control container.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve for the Cruise Control container.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template to specify how Cruise Control resources, `Deployments` and `Pods`, are generated.\",\n \"properties\": {\n \"apiService\": {\n \"description\": \"Template for Cruise Control API `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"cruiseControlContainer\": {\n \"description\": \"Template for the Cruise Control container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"description\": \"Template for Cruise Control `Deployment`.\",\n \"properties\": {\n \"deploymentStrategy\": {\n \"description\": \"Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.\",\n \"enum\": [\n \"RollingUpdate\",\n \"Recreate\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Cruise Control `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podDisruptionBudget\": {\n \"description\": \"Template for Cruise Control `PodDisruptionBudget`.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"description\": \"Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the Cruise Control service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsSidecarContainer\": {\n \"description\": \"Template for the Cruise Control TLS sidecar container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsSidecar\": {\n \"description\": \"TLS sidecar configuration.\",\n \"properties\": {\n \"image\": {\n \"description\": \"The docker image for the container.\",\n \"type\": \"string\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logLevel\": {\n \"description\": \"The log level for the TLS sidecar. Default value is `notice`.\",\n \"enum\": [\n \"emerg\",\n \"alert\",\n \"crit\",\n \"err\",\n \"warning\",\n \"notice\",\n \"info\",\n \"debug\"\n ],\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"entityOperator\": {\n \"description\": \"Configuration of the Entity Operator.\",\n \"properties\": {\n \"template\": {\n \"description\": \"Template for Entity Operator resources. The template allows users to specify how a `Deployment` and `Pod` is generated.\",\n \"properties\": {\n \"deployment\": {\n \"description\": \"Template for Entity Operator `Deployment`.\",\n \"properties\": {\n \"deploymentStrategy\": {\n \"description\": \"Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.\",\n \"enum\": [\n \"RollingUpdate\",\n \"Recreate\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"entityOperatorRole\": {\n \"description\": \"Template for the Entity Operator Role.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Entity Operator `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the Entity Operator service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsSidecarContainer\": {\n \"description\": \"Template for the Entity Operator TLS sidecar container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"topicOperatorContainer\": {\n \"description\": \"Template for the Entity Topic Operator container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"topicOperatorRoleBinding\": {\n \"description\": \"Template for the Entity Topic Operator RoleBinding.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"userOperatorContainer\": {\n \"description\": \"Template for the Entity User Operator container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"userOperatorRoleBinding\": {\n \"description\": \"Template for the Entity Topic Operator RoleBinding.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsSidecar\": {\n \"description\": \"TLS sidecar configuration.\",\n \"properties\": {\n \"image\": {\n \"description\": \"The docker image for the container.\",\n \"type\": \"string\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logLevel\": {\n \"description\": \"The log level for the TLS sidecar. Default value is `notice`.\",\n \"enum\": [\n \"emerg\",\n \"alert\",\n \"crit\",\n \"err\",\n \"warning\",\n \"notice\",\n \"info\",\n \"debug\"\n ],\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"topicOperator\": {\n \"description\": \"Configuration of the Topic Operator.\",\n \"properties\": {\n \"image\": {\n \"description\": \"The image to use for the Topic Operator.\",\n \"type\": \"string\"\n },\n \"jvmOptions\": {\n \"description\": \"JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"reconciliationIntervalMs\": {\n \"description\": \"Interval between periodic reconciliations in milliseconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"reconciliationIntervalSeconds\": {\n \"description\": \"Interval between periodic reconciliations in seconds. Ignored if reconciliationIntervalMs is set.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"description\": \"Pod startup checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"topicMetadataMaxAttempts\": {\n \"description\": \"The number of attempts at getting topic metadata.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"watchedNamespace\": {\n \"description\": \"The namespace the Topic Operator should watch.\",\n \"type\": \"string\"\n },\n \"zookeeperSessionTimeoutSeconds\": {\n \"description\": \"Timeout for the ZooKeeper session.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"userOperator\": {\n \"description\": \"Configuration of the User Operator.\",\n \"properties\": {\n \"image\": {\n \"description\": \"The image to use for the User Operator.\",\n \"type\": \"string\"\n },\n \"jvmOptions\": {\n \"description\": \"JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"reconciliationIntervalMs\": {\n \"description\": \"Interval between periodic reconciliations in milliseconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"reconciliationIntervalSeconds\": {\n \"description\": \"Interval between periodic reconciliations in seconds. Ignored if reconciliationIntervalMs is set.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"secretPrefix\": {\n \"description\": \"The prefix that will be added to the KafkaUser name to be used as the Secret name.\",\n \"type\": \"string\"\n },\n \"watchedNamespace\": {\n \"description\": \"The namespace the User Operator should watch.\",\n \"type\": \"string\"\n },\n \"zookeeperSessionTimeoutSeconds\": {\n \"description\": \"Timeout for the ZooKeeper session.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"jmxTrans\": {\n \"description\": \"As of Strimzi 0.35.0, JMXTrans is not supported anymore and this option is ignored.\",\n \"properties\": {\n \"image\": {\n \"description\": \"The image to use for the JmxTrans.\",\n \"type\": \"string\"\n },\n \"kafkaQueries\": {\n \"description\": \"Queries to send to the Kafka brokers to define what data should be read from each broker. For more information on these properties see, xref:type-JmxTransQueryTemplate-reference[`JmxTransQueryTemplate` schema reference].\",\n \"items\": {\n \"properties\": {\n \"attributes\": {\n \"description\": \"Determine which attributes of the targeted MBean should be included.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"outputs\": {\n \"description\": \"List of the names of output definitions specified in the spec.kafka.jmxTrans.outputDefinitions that have defined where JMX metrics are pushed to, and in which data format.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetMBean\": {\n \"description\": \"If using wildcards instead of a specific MBean then the data is gathered from multiple MBeans. Otherwise if specifying an MBean then data is gathered from that specified MBean.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"targetMBean\",\n \"attributes\",\n \"outputs\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"logLevel\": {\n \"description\": \"Sets the logging level of the JmxTrans deployment.For more information see, https://github.com/jmxtrans/jmxtrans-agent/wiki/Troubleshooting[JmxTrans Logging Level].\",\n \"type\": \"string\"\n },\n \"outputDefinitions\": {\n \"description\": \"Defines the output hosts that will be referenced later on. For more information on these properties see, xref:type-JmxTransOutputDefinitionTemplate-reference[`JmxTransOutputDefinitionTemplate` schema reference].\",\n \"items\": {\n \"properties\": {\n \"flushDelayInSeconds\": {\n \"description\": \"How many seconds the JmxTrans waits before pushing a new set of data out.\",\n \"type\": \"integer\"\n },\n \"host\": {\n \"description\": \"The DNS/hostname of the remote host that the data is pushed to.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Template for setting the name of the output definition. This is used to identify where to send the results of queries should be sent.\",\n \"type\": \"string\"\n },\n \"outputType\": {\n \"description\": \"Template for setting the format of the data that will be pushed.For more information see https://github.com/jmxtrans/jmxtrans/wiki/OutputWriters[JmxTrans OutputWriters].\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port of the remote host that the data is pushed to.\",\n \"type\": \"integer\"\n },\n \"typeNames\": {\n \"description\": \"Template for filtering data to be included in response to a wildcard query. For more information see https://github.com/jmxtrans/jmxtrans/wiki/Queries[JmxTrans queries].\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"outputType\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template for JmxTrans resources.\",\n \"properties\": {\n \"container\": {\n \"description\": \"Template for JmxTrans container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"description\": \"Template for JmxTrans `Deployment`.\",\n \"properties\": {\n \"deploymentStrategy\": {\n \"description\": \"Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.\",\n \"enum\": [\n \"RollingUpdate\",\n \"Recreate\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for JmxTrans `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the JmxTrans service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"outputDefinitions\",\n \"kafkaQueries\"\n ],\n \"type\": \"object\"\n },\n \"kafka\": {\n \"description\": \"Configuration of the Kafka cluster.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization configuration for Kafka brokers.\",\n \"properties\": {\n \"allowOnError\": {\n \"description\": \"Defines whether a Kafka client should be allowed or denied by default when the authorizer fails to query the Open Policy Agent, for example, when it is temporarily unavailable). Defaults to `false` - all actions will be denied.\",\n \"type\": \"boolean\"\n },\n \"authorizerClass\": {\n \"description\": \"Authorization implementation class, which must be available in classpath.\",\n \"type\": \"string\"\n },\n \"clientId\": {\n \"description\": \"OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"type\": \"string\"\n },\n \"connectTimeoutSeconds\": {\n \"description\": \"The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"delegateToKafkaAcls\": {\n \"description\": \"Whether authorization decision should be delegated to the 'Simple' authorizer if DENIED by Keycloak Authorization Services policies. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"disableTlsHostnameVerification\": {\n \"description\": \"Enable or disable TLS hostname verification. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"enableMetrics\": {\n \"description\": \"Enable or disable OAuth metrics. The default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"expireAfterMs\": {\n \"description\": \"The expiration of the records kept in the local cache to avoid querying the Open Policy Agent for every request. Defines how often the cached authorization decisions are reloaded from the Open Policy Agent server. In milliseconds. Defaults to `3600000`.\",\n \"type\": \"integer\"\n },\n \"grantsAlwaysLatest\": {\n \"description\": \"Controls whether the latest grants are fetched for a new session. When enabled, grants are retrieved from Keycloak and cached for the user. The default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"grantsGcPeriodSeconds\": {\n \"description\": \"The time, in seconds, between consecutive runs of a job that cleans stale grants from the cache. The default value is 300.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"grantsMaxIdleTimeSeconds\": {\n \"description\": \"The time, in seconds, after which an idle grant can be evicted from the cache. The default value is 300.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"grantsRefreshPeriodSeconds\": {\n \"description\": \"The time between two consecutive grants refresh runs in seconds. The default value is 60.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"grantsRefreshPoolSize\": {\n \"description\": \"The number of threads to use to refresh grants for active sessions. The more threads, the more parallelism, so the sooner the job completes. However, using more threads places a heavier load on the authorization server. The default value is 5.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"httpRetries\": {\n \"description\": \"The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"includeAcceptHeader\": {\n \"description\": \"Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"initialCacheCapacity\": {\n \"description\": \"Initial capacity of the local cache used by the authorizer to avoid querying the Open Policy Agent for every request Defaults to `5000`.\",\n \"type\": \"integer\"\n },\n \"maximumCacheSize\": {\n \"description\": \"Maximum capacity of the local cache used by the authorizer to avoid querying the Open Policy Agent for every request. Defaults to `50000`.\",\n \"type\": \"integer\"\n },\n \"readTimeoutSeconds\": {\n \"description\": \"The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"superUsers\": {\n \"description\": \"List of super users, which are user principals with unlimited access rights.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"supportsAdminApi\": {\n \"description\": \"Indicates whether the custom authorizer supports the APIs for managing ACLs using the Kafka Admin API. Defaults to `false`.\",\n \"type\": \"boolean\"\n },\n \"tlsTrustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection to the OAuth server.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tokenEndpointUri\": {\n \"description\": \"Authorization server token endpoint URI.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Authorization type. Currently, the supported types are `simple`, `keycloak`, `opa` and `custom`. `simple` authorization type uses Kafka's built-in authorizer for authorization. `keycloak` authorization type uses Keycloak Authorization Services for authorization. `opa` authorization type uses Open Policy Agent based authorization.`custom` authorization type uses user-provided implementation for authorization.\",\n \"enum\": [\n \"simple\",\n \"opa\",\n \"keycloak\",\n \"custom\"\n ],\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"The URL used to connect to the Open Policy Agent server. The URL has to include the policy which will be queried by the authorizer. This option is required.\",\n \"example\": \"http://opa:8181/v1/data/kafka/authz/allow\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"brokerRackInitImage\": {\n \"description\": \"The image of the init container used for initializing the `broker.rack`.\",\n \"type\": \"string\"\n },\n \"config\": {\n \"description\": \"Kafka broker config properties with the following prefixes cannot be set: listeners, advertised., broker., listener., host.name, port, inter.broker.listener.name, sasl., ssl., security., password., log.dir, zookeeper.connect, zookeeper.set.acl, zookeeper.ssl, zookeeper.clientCnxnSocket, authorizer., super.user, cruise.control.metrics.topic, cruise.control.metrics.reporter.bootstrap.servers, node.id, process.roles, controller., metadata.log.dir, zookeeper.metadata.migration.enable, client.quota.callback.static.kafka.admin., client.quota.callback.static.produce, client.quota.callback.static.fetch, client.quota.callback.static.storage.per.volume.limit.min.available., client.quota.callback.static.excluded.principal.name.list (with the exception of: zookeeper.connection.timeout.ms, sasl.server.max.receive.size, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols, ssl.secure.random.implementation, cruise.control.metrics.topic.num.partitions, cruise.control.metrics.topic.replication.factor, cruise.control.metrics.topic.retention.ms, cruise.control.metrics.topic.auto.create.retries, cruise.control.metrics.topic.auto.create.timeout.ms, cruise.control.metrics.topic.min.insync.replicas, controller.quorum.election.backoff.max.ms, controller.quorum.election.timeout.ms, controller.quorum.fetch.timeout.ms).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"The container image used for Kafka pods. If the property is not set, the default Kafka image version is determined based on the `version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration. Changing the Kafka image version does not automatically update the image versions for other components, such as Kafka Exporter. \",\n \"type\": \"string\"\n },\n \"jmxOptions\": {\n \"description\": \"JMX Options for Kafka brokers.\",\n \"properties\": {\n \"authentication\": {\n \"description\": \"Authentication configuration for connecting to the JMX port.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Authentication type. Currently the only supported types are `password`.`password` type creates a username and protected port with no TLS.\",\n \"enum\": [\n \"password\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"jvmOptions\": {\n \"description\": \"JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"listeners\": {\n \"description\": \"Configures listeners to provide access to Kafka brokers.\",\n \"items\": {\n \"properties\": {\n \"authentication\": {\n \"description\": \"Authentication configuration for this listener.\",\n \"properties\": {\n \"accessTokenIsJwt\": {\n \"description\": \"Configure whether the access token is treated as JWT. This must be set to `false` if the authorization server returns opaque tokens. Defaults to `true`.\",\n \"type\": \"boolean\"\n },\n \"checkAccessTokenType\": {\n \"description\": \"Configure whether the access token type check is performed or not. This should be set to `false` if the authorization server does not include 'typ' claim in JWT token. Defaults to `true`.\",\n \"type\": \"boolean\"\n },\n \"checkAudience\": {\n \"description\": \"Enable or disable audience checking. Audience checks identify the recipients of tokens. If audience checking is enabled, the OAuth Client ID also has to be configured using the `clientId` property. The Kafka broker will reject tokens that do not have its `clientId` in their `aud` (audience) claim.Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"checkIssuer\": {\n \"description\": \"Enable or disable issuer checking. By default issuer is checked using the value configured by `validIssuerUri`. Default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"clientAudience\": {\n \"description\": \"The audience to use when making requests to the authorization server's token endpoint. Used for inter-broker authentication and for configuring OAuth 2.0 over PLAIN using the `clientId` and `secret` method.\",\n \"type\": \"string\"\n },\n \"clientId\": {\n \"description\": \"OAuth Client ID which the Kafka broker can use to authenticate against the authorization server and use the introspect endpoint URI.\",\n \"type\": \"string\"\n },\n \"clientScope\": {\n \"description\": \"The scope to use when making requests to the authorization server's token endpoint. Used for inter-broker authentication and for configuring OAuth 2.0 over PLAIN using the `clientId` and `secret` method.\",\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"Link to Kubernetes Secret containing the OAuth client secret which the Kafka broker can use to authenticate against the authorization server and use the introspect endpoint URI.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"connectTimeoutSeconds\": {\n \"description\": \"The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"customClaimCheck\": {\n \"description\": \"JsonPath filter query to be applied to the JWT token or to the response of the introspection endpoint for additional token validation. Not set by default.\",\n \"type\": \"string\"\n },\n \"disableTlsHostnameVerification\": {\n \"description\": \"Enable or disable TLS hostname verification. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"enableECDSA\": {\n \"description\": \"Enable or disable ECDSA support by installing BouncyCastle crypto provider. ECDSA support is always enabled. The BouncyCastle libraries are no longer packaged with Strimzi. Value is ignored.\",\n \"type\": \"boolean\"\n },\n \"enableMetrics\": {\n \"description\": \"Enable or disable OAuth metrics. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"enableOauthBearer\": {\n \"description\": \"Enable or disable OAuth authentication over SASL_OAUTHBEARER. Default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"enablePlain\": {\n \"description\": \"Enable or disable OAuth authentication over SASL_PLAIN. There is no re-authentication support when this mechanism is used. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"failFast\": {\n \"description\": \"Enable or disable termination of Kafka broker processes due to potentially recoverable runtime errors during startup. Default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"fallbackUserNameClaim\": {\n \"description\": \"The fallback username claim to be used for the user ID if the claim specified by `userNameClaim` is not present. This is useful when `client_credentials` authentication only results in the client ID being provided in another claim. It only takes effect if `userNameClaim` is set.\",\n \"type\": \"string\"\n },\n \"fallbackUserNamePrefix\": {\n \"description\": \"The prefix to use with the value of `fallbackUserNameClaim` to construct the user id. This only takes effect if `fallbackUserNameClaim` is true, and the value is present for the claim. Mapping usernames and client ids into the same user id space is useful in preventing name collisions.\",\n \"type\": \"string\"\n },\n \"groupsClaim\": {\n \"description\": \"JsonPath query used to extract groups for the user during authentication. Extracted groups can be used by a custom authorizer. By default no groups are extracted.\",\n \"type\": \"string\"\n },\n \"groupsClaimDelimiter\": {\n \"description\": \"A delimiter used to parse groups when they are extracted as a single String value rather than a JSON array. Default value is ',' (comma).\",\n \"type\": \"string\"\n },\n \"httpRetries\": {\n \"description\": \"The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.\",\n \"type\": \"integer\"\n },\n \"httpRetryPauseMs\": {\n \"description\": \"The pause to take before retrying a failed HTTP request. If not set, the default is to not pause at all but to immediately repeat a request.\",\n \"type\": \"integer\"\n },\n \"includeAcceptHeader\": {\n \"description\": \"Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"introspectionEndpointUri\": {\n \"description\": \"URI of the token introspection endpoint which can be used to validate opaque non-JWT tokens.\",\n \"type\": \"string\"\n },\n \"jwksEndpointUri\": {\n \"description\": \"URI of the JWKS certificate endpoint, which can be used for local JWT validation.\",\n \"type\": \"string\"\n },\n \"jwksExpirySeconds\": {\n \"description\": \"Configures how often are the JWKS certificates considered valid. The expiry interval has to be at least 60 seconds longer then the refresh interval specified in `jwksRefreshSeconds`. Defaults to 360 seconds.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"jwksIgnoreKeyUse\": {\n \"description\": \"Flag to ignore the 'use' attribute of `key` declarations in a JWKS endpoint response. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"jwksMinRefreshPauseSeconds\": {\n \"description\": \"The minimum pause between two consecutive refreshes. When an unknown signing key is encountered the refresh is scheduled immediately, but will always wait for this minimum pause. Defaults to 1 second.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"jwksRefreshSeconds\": {\n \"description\": \"Configures how often are the JWKS certificates refreshed. The refresh interval has to be at least 60 seconds shorter then the expiry interval specified in `jwksExpirySeconds`. Defaults to 300 seconds.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"listenerConfig\": {\n \"description\": \"Configuration to be used for a specific listener. All values are prefixed with `listener.name.\\u003clistener_name\\u003e`.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"maxSecondsWithoutReauthentication\": {\n \"description\": \"Maximum number of seconds the authenticated session remains valid without re-authentication. This enables Apache Kafka re-authentication feature, and causes sessions to expire when the access token expires. If the access token expires before max time or if max time is reached, the client has to re-authenticate, otherwise the server will drop the connection. Not set by default - the authenticated session does not expire when the access token expires. This option only applies to SASL_OAUTHBEARER authentication mechanism (when `enableOauthBearer` is `true`).\",\n \"type\": \"integer\"\n },\n \"readTimeoutSeconds\": {\n \"description\": \"The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"sasl\": {\n \"description\": \"Enable or disable SASL on this listener.\",\n \"type\": \"boolean\"\n },\n \"secrets\": {\n \"description\": \"Secrets to be mounted to `/opt/kafka/custom-authn-secrets/custom-listener-\\u003clistener_name\\u003e-\\u003cport\\u003e/\\u003csecret_name\\u003e`.\",\n \"items\": {\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"serverBearerTokenLocation\": {\n \"description\": \"Path to the file on the local filesystem that contains a bearer token to be used instead of client ID and secret when authenticating to authorization server.\",\n \"type\": \"string\"\n },\n \"tlsTrustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection to the OAuth server.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tokenEndpointUri\": {\n \"description\": \"URI of the Token Endpoint to use with SASL_PLAIN mechanism when the client authenticates with `clientId` and a `secret`. If set, the client can authenticate over SASL_PLAIN by either setting `username` to `clientId`, and setting `password` to client `secret`, or by setting `username` to account username, and `password` to access token prefixed with `$accessToken:`. If this option is not set, the `password` is always interpreted as an access token (without a prefix), and `username` as the account username (a so called 'no-client-credentials' mode).\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Authentication type. `oauth` type uses SASL OAUTHBEARER Authentication. `scram-sha-512` type uses SASL SCRAM-SHA-512 Authentication. `tls` type uses TLS Client Authentication. `tls` type is supported only on TLS listeners.`custom` type allows for any authentication type to be used.\",\n \"enum\": [\n \"tls\",\n \"scram-sha-512\",\n \"oauth\",\n \"custom\"\n ],\n \"type\": \"string\"\n },\n \"userInfoEndpointUri\": {\n \"description\": \"URI of the User Info Endpoint to use as a fallback to obtaining the user id when the Introspection Endpoint does not return information that can be used for the user id. \",\n \"type\": \"string\"\n },\n \"userNameClaim\": {\n \"description\": \"Name of the claim from the JWT authentication token, Introspection Endpoint response or User Info Endpoint response which will be used to extract the user id. Defaults to `sub`.\",\n \"type\": \"string\"\n },\n \"userNamePrefix\": {\n \"description\": \"The prefix to use with the value of `userNameClaim` to construct the user ID. This only takes effect if `userNameClaim` is specified and the value is present for the claim. When used in combination with `fallbackUserNameClaims`, it ensures consistent mapping of usernames and client IDs into the same user ID space and prevents name collisions.\",\n \"type\": \"string\"\n },\n \"validIssuerUri\": {\n \"description\": \"URI of the token issuer used for authentication.\",\n \"type\": \"string\"\n },\n \"validTokenType\": {\n \"description\": \"Valid value for the `token_type` attribute returned by the Introspection Endpoint. No default value, and not checked by default.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"configuration\": {\n \"description\": \"Additional listener configuration.\",\n \"properties\": {\n \"bootstrap\": {\n \"description\": \"Bootstrap configuration.\",\n \"properties\": {\n \"alternativeNames\": {\n \"description\": \"Additional alternative names for the bootstrap service. The alternative names will be added to the list of subject alternative names of the TLS certificates.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to `Ingress`, `Route`, or `Service` resources. You can use this property to configure DNS providers such as External DNS. For `loadbalancer`, `nodeport`, `route`, or `ingress` listeners only.\",\n \"type\": \"object\"\n },\n \"externalIPs\": {\n \"description\": \"External IPs associated to the nodeport service. These IPs are used by clients external to the Kubernetes cluster to access the Kafka brokers. This property is helpful when `nodeport` without `externalIP` is not sufficient. For example on bare-metal Kubernetes clusters that do not support Loadbalancer service types. For `nodeport` listeners only.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"host\": {\n \"description\": \"Specifies the hostname used for the bootstrap resource. For `route` (optional) or `ingress` (required) listeners only. Ensure the hostname resolves to the Ingress endpoints; no validation is performed by Strimzi.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to `Ingress`, `Route`, or `Service` resources. For `loadbalancer`, `nodeport`, `route`, or `ingress` listeners only.\",\n \"type\": \"object\"\n },\n \"loadBalancerIP\": {\n \"description\": \"The loadbalancer is requested with the IP address specified in this property. This feature depends on whether the underlying cloud provider supports specifying the `loadBalancerIP` when a load balancer is created. This property is ignored if the cloud provider does not support the feature. For `loadbalancer` listeners only.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"Node port for the bootstrap service. For `nodeport` listeners only.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"brokerCertChainAndKey\": {\n \"description\": \"Reference to the `Secret` which holds the certificate and private key pair which will be used for this listener. The certificate can optionally contain the whole chain. This field can be used only with listeners with enabled TLS encryption.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the Secret.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"The name of the private key in the Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"certificate\",\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"brokers\": {\n \"description\": \"Per-broker configurations.\",\n \"items\": {\n \"properties\": {\n \"advertisedHost\": {\n \"description\": \"The host name used in the brokers' `advertised.listeners`.\",\n \"type\": \"string\"\n },\n \"advertisedPort\": {\n \"description\": \"The port number used in the brokers' `advertised.listeners`.\",\n \"type\": \"integer\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations that will be added to the `Ingress` or `Service` resource. You can use this field to configure DNS providers such as External DNS. This field can be used only with `loadbalancer`, `nodeport`, or `ingress` type listeners.\",\n \"type\": \"object\"\n },\n \"broker\": {\n \"description\": \"ID of the kafka broker (broker identifier). Broker IDs start from 0 and correspond to the number of broker replicas.\",\n \"type\": \"integer\"\n },\n \"externalIPs\": {\n \"description\": \"External IPs associated to the nodeport service. These IPs are used by clients external to the Kubernetes cluster to access the Kafka brokers. This field is helpful when `nodeport` without `externalIP` is not sufficient. For example on bare-metal Kubernetes clusters that do not support Loadbalancer service types. This field can only be used with `nodeport` type listener.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"host\": {\n \"description\": \"The broker host. This field will be used in the Ingress resource or in the Route resource to specify the desired hostname. This field can be used only with `route` (optional) or `ingress` (required) type listeners.\",\n \"type\": \"string\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels that will be added to the `Ingress`, `Route`, or `Service` resource. This field can be used only with `loadbalancer`, `nodeport`, `route`, or `ingress` type listeners.\",\n \"type\": \"object\"\n },\n \"loadBalancerIP\": {\n \"description\": \"The loadbalancer is requested with the IP address specified in this field. This feature depends on whether the underlying cloud provider supports specifying the `loadBalancerIP` when a load balancer is created. This field is ignored if the cloud provider does not support the feature.This field can be used only with `loadbalancer` type listener.\",\n \"type\": \"string\"\n },\n \"nodePort\": {\n \"description\": \"Node port for the per-broker service. This field can be used only with `nodeport` type listener.\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"broker\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"class\": {\n \"description\": \"Configures a specific class for `Ingress` and `LoadBalancer` that defines which controller is used. If not specified, the default controller is used.\\n\\n* For an `ingress` listener, the operator uses this property to set the `ingressClassName` property in the `Ingress` resources.\\n* For a `loadbalancer` listener, the operator uses this property to set the `loadBalancerClass` property in the `Service` resources.\\n\\nFor `ingress` and `loadbalancer` listeners only.\",\n \"type\": \"string\"\n },\n \"createBootstrapService\": {\n \"description\": \"Whether to create the bootstrap service or not. The bootstrap service is created by default (if not specified differently). This field can be used with the `loadbalancer` listener.\",\n \"type\": \"boolean\"\n },\n \"externalTrafficPolicy\": {\n \"description\": \"Specifies whether the service routes external traffic to cluster-wide or node-local endpoints:\\n\\n* `Cluster` may cause a second hop to another node and obscures the client source IP.\\n* `Local` avoids a second hop for `LoadBalancer` and `Nodeport` type services and preserves the client source IP (when supported by the infrastructure).\\n\\nIf unspecified, Kubernetes uses `Cluster` as the default. For `loadbalancer` or `nodeport` listeners only.\",\n \"enum\": [\n \"Local\",\n \"Cluster\"\n ],\n \"type\": \"string\"\n },\n \"finalizers\": {\n \"description\": \"A list of finalizers configured for the `LoadBalancer` type services created for this listener. If supported by the platform, the finalizer `service.kubernetes.io/load-balancer-cleanup` to make sure that the external load balancer is deleted together with the service.For more information, see https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#garbage-collecting-load-balancers. For `loadbalancer` listeners only.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`:\\n\\n* `SingleStack` is for a single IP family.\\n* `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters.\\n* `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters.\\n\\nIf unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"loadBalancerSourceRanges\": {\n \"description\": \"A list of CIDR ranges (for example `10.0.0.0/8` or `130.211.204.1/32`) from which clients can connect to loadbalancer listeners. If supported by the platform, traffic through the loadbalancer is restricted to the specified CIDR ranges. This field is applicable only for loadbalancer type services and is ignored if the cloud provider does not support the feature. For `loadbalancer` listeners only.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxConnectionCreationRate\": {\n \"description\": \"The maximum connection creation rate we allow in this listener at any time. New connections will be throttled if the limit is reached.\",\n \"type\": \"integer\"\n },\n \"maxConnections\": {\n \"description\": \"The maximum number of connections we allow for this listener in the broker at any time. New connections are blocked if the limit is reached.\",\n \"type\": \"integer\"\n },\n \"preferredNodePortAddressType\": {\n \"description\": \"Defines which address type should be used as the node address. Available types are: `ExternalDNS`, `ExternalIP`, `InternalDNS`, `InternalIP` and `Hostname`. By default, the addresses are used in the following order (the first one found is used):\\n\\n* `ExternalDNS`\\n* `ExternalIP`\\n* `InternalDNS`\\n* `InternalIP`\\n* `Hostname`\\n\\nThis property is used to select the preferred address type, which is checked first. If no address is found for this address type, the other types are checked in the default order.For `nodeport` listeners only.\",\n \"enum\": [\n \"ExternalIP\",\n \"ExternalDNS\",\n \"InternalIP\",\n \"InternalDNS\",\n \"Hostname\"\n ],\n \"type\": \"string\"\n },\n \"publishNotReadyAddresses\": {\n \"description\": \"Configures whether the service endpoints are considered \\\"ready\\\" even if the Pods themselves are not. Defaults to `false`. This field can not be used with `internal` listeners.\",\n \"type\": \"boolean\"\n },\n \"useServiceDnsDomain\": {\n \"description\": \"Configures whether the Kubernetes service DNS domain should be included in the generated addresses.\\n\\n* If set to `false`, the generated addresses do not contain the service DNS domain suffix. For example, `my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc`.\\n* If set to `true`, the generated addresses contain the service DNS domain suffix. For example, `my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc.cluster.local`.\\n\\nThe default is `.cluster.local`, but this is customizable using the environment variable `KUBERNETES_SERVICE_DNS_DOMAIN`. For `internal` and `cluster-ip` listeners only.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the listener. The name will be used to identify the listener and the related Kubernetes objects. The name has to be unique within given a Kafka cluster. The name can consist of lowercase characters and numbers and be up to 11 characters long.\",\n \"pattern\": \"^[a-z0-9]{1,11}$\",\n \"type\": \"string\"\n },\n \"networkPolicyPeers\": {\n \"description\": \"List of peers which should be able to connect to this listener. Peers in this list are combined using a logical OR operation. If this field is empty or missing, all connections will be allowed for this listener. If this field is present and contains at least one item, the listener only allows the traffic which matches at least one item in this list.\",\n \"items\": {\n \"properties\": {\n \"ipBlock\": {\n \"properties\": {\n \"cidr\": {\n \"type\": \"string\"\n },\n \"except\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"Port number used by the listener inside Kafka. The port number has to be unique within a given Kafka cluster. Allowed port numbers are 9092 and higher with the exception of ports 9404 and 9999, which are already used for Prometheus and JMX. Depending on the listener type, the port number might not be the same as the port number that connects Kafka clients.\",\n \"minimum\": 9092,\n \"type\": \"integer\"\n },\n \"tls\": {\n \"description\": \"Enables TLS encryption on the listener. This is a required property. For `route` and `ingress` type listeners, TLS encryption must be always enabled.\",\n \"type\": \"boolean\"\n },\n \"type\": {\n \"description\": \"Type of the listener. The supported types are as follows: \\n\\n* `internal` type exposes Kafka internally only within the Kubernetes cluster.\\n* `route` type uses OpenShift Routes to expose Kafka.\\n* `loadbalancer` type uses LoadBalancer type services to expose Kafka.\\n* `nodeport` type uses NodePort type services to expose Kafka.\\n* `ingress` type uses Kubernetes Nginx Ingress to expose Kafka with TLS passthrough.\\n* `cluster-ip` type uses a per-broker `ClusterIP` service.\\n\",\n \"enum\": [\n \"internal\",\n \"route\",\n \"loadbalancer\",\n \"nodeport\",\n \"ingress\",\n \"cluster-ip\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"port\",\n \"type\",\n \"tls\"\n ],\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration for Kafka.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"metadataVersion\": {\n \"description\": \"The KRaft metadata version used by the Kafka cluster. This property is ignored when running in ZooKeeper mode. If the property is not set, it defaults to the metadata version that corresponds to the `version` property.\",\n \"type\": \"string\"\n },\n \"metricsConfig\": {\n \"description\": \"Metrics configuration.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Metrics type. Only 'jmxPrometheusExporter' supported currently.\",\n \"enum\": [\n \"jmxPrometheusExporter\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"ConfigMap entry where the Prometheus JMX Exporter configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"quotas\": {\n \"description\": \"Quotas plugin configuration for Kafka brokers allows setting quotas for disk usage, produce/fetch rates, and more. Supported plugin types include `kafka` (default) and `strimzi`. If not specified, the default `kafka` quotas plugin is used.\",\n \"properties\": {\n \"consumerByteRate\": {\n \"description\": \"A per-broker byte-rate quota for clients consuming from a broker, independent of their number. If clients consume at maximum speed, the quota is shared equally between all non-excluded consumers. Otherwise, the quota is divided based on each client's consumption rate.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"controllerMutationRate\": {\n \"description\": \"The default client quota on the rate at which mutations are accepted per second for create topic requests, create partition requests, and delete topic requests, defined for each broker. The mutations rate is measured by the number of partitions created or deleted. Applied on a per-broker basis.\",\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"excludedPrincipals\": {\n \"description\": \"List of principals that are excluded from the quota. The principals have to be prefixed with `User:`, for example `User:my-user;User:CN=my-other-user`.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"minAvailableBytesPerVolume\": {\n \"description\": \"Stop message production if the available size (in bytes) of the storage is lower than or equal to this specified value. This condition is mutually exclusive with `minAvailableRatioPerVolume`.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"minAvailableRatioPerVolume\": {\n \"description\": \"Stop message production if the percentage of available storage space falls below or equals the specified ratio (set as a decimal representing a percentage). This condition is mutually exclusive with `minAvailableBytesPerVolume`.\",\n \"maximum\": 1,\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"producerByteRate\": {\n \"description\": \"A per-broker byte-rate quota for clients producing to a broker, independent of their number. If clients produce at maximum speed, the quota is shared equally between all non-excluded producers. Otherwise, the quota is divided based on each client's production rate.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"requestPercentage\": {\n \"description\": \"The default client quota limits the maximum CPU utilization of each client as a percentage of the network and I/O threads of each broker. Applied on a per-broker basis.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"type\": {\n \"description\": \"Quotas plugin type. Currently, the supported types are `kafka` and `strimzi`. `kafka` quotas type uses Kafka's built-in quotas plugin. `strimzi` quotas type uses Strimzi quotas plugin.\",\n \"enum\": [\n \"kafka\",\n \"strimzi\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"rack\": {\n \"description\": \"Configuration of the `broker.rack` broker config.\",\n \"properties\": {\n \"topologyKey\": {\n \"description\": \"A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2.\",\n \"example\": \"topology.kubernetes.io/zone\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"The number of pods in the cluster. This property is required when node pools are not used.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storage\": {\n \"description\": \"Storage configuration (disk). Cannot be updated. This property is required when node pools are not used.\",\n \"properties\": {\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation.\",\n \"type\": \"string\"\n },\n \"deleteClaim\": {\n \"description\": \"Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed.\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"kraftMetadata\": {\n \"description\": \"Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set.\",\n \"enum\": [\n \"shared\"\n ],\n \"type\": \"string\"\n },\n \"overrides\": {\n \"description\": \"Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.\",\n \"items\": {\n \"properties\": {\n \"broker\": {\n \"description\": \"Id of the kafka broker (broker identifier).\",\n \"type\": \"integer\"\n },\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation for this broker.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume.\",\n \"type\": \"object\"\n },\n \"size\": {\n \"description\": \"When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`.\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"description\": \"When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi).\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Storage type, must be either 'ephemeral', 'persistent-claim', or 'jbod'.\",\n \"enum\": [\n \"ephemeral\",\n \"persistent-claim\",\n \"jbod\"\n ],\n \"type\": \"string\"\n },\n \"volumes\": {\n \"description\": \"List of volumes as Storage objects representing the JBOD disks array.\",\n \"items\": {\n \"properties\": {\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation.\",\n \"type\": \"string\"\n },\n \"deleteClaim\": {\n \"description\": \"Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed.\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"kraftMetadata\": {\n \"description\": \"Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set.\",\n \"enum\": [\n \"shared\"\n ],\n \"type\": \"string\"\n },\n \"overrides\": {\n \"description\": \"Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.\",\n \"items\": {\n \"properties\": {\n \"broker\": {\n \"description\": \"Id of the kafka broker (broker identifier).\",\n \"type\": \"integer\"\n },\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation for this broker.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume.\",\n \"type\": \"object\"\n },\n \"size\": {\n \"description\": \"When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`.\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"description\": \"When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi).\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Storage type, must be either 'ephemeral' or 'persistent-claim'.\",\n \"enum\": [\n \"ephemeral\",\n \"persistent-claim\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template for Kafka cluster resources. The template allows users to specify how the Kubernetes resources are generated.\",\n \"properties\": {\n \"bootstrapService\": {\n \"description\": \"Template for Kafka bootstrap `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"brokersService\": {\n \"description\": \"Template for Kafka broker `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterCaCert\": {\n \"description\": \"Template for Secret with Kafka Cluster certificate public key.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterRoleBinding\": {\n \"description\": \"Template for the Kafka ClusterRoleBinding.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"externalBootstrapIngress\": {\n \"description\": \"Template for Kafka external bootstrap `Ingress`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"externalBootstrapRoute\": {\n \"description\": \"Template for Kafka external bootstrap `Route`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"externalBootstrapService\": {\n \"description\": \"Template for Kafka external bootstrap `Service`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"initContainer\": {\n \"description\": \"Template for the Kafka init container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"jmxSecret\": {\n \"description\": \"Template for Secret of the Kafka Cluster JMX authentication.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"kafkaContainer\": {\n \"description\": \"Template for the Kafka broker container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"perPodIngress\": {\n \"description\": \"Template for Kafka per-pod `Ingress` used for access from outside of Kubernetes.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"perPodRoute\": {\n \"description\": \"Template for Kafka per-pod `Routes` used for access from outside of OpenShift.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"perPodService\": {\n \"description\": \"Template for Kafka per-pod `Services` used for access from outside of Kubernetes.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"Template for all Kafka `PersistentVolumeClaims`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Kafka `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podDisruptionBudget\": {\n \"description\": \"Template for Kafka `PodDisruptionBudget`.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"description\": \"Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podSet\": {\n \"description\": \"Template for Kafka `StrimziPodSet` resource.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the Kafka service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"statefulset\": {\n \"description\": \"Template for Kafka `StatefulSet`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podManagementPolicy\": {\n \"description\": \"PodManagementPolicy which will be used for this StatefulSet. Valid values are `Parallel` and `OrderedReady`. Defaults to `Parallel`.\",\n \"enum\": [\n \"OrderedReady\",\n \"Parallel\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tieredStorage\": {\n \"description\": \"Configure the tiered storage feature for Kafka brokers.\",\n \"properties\": {\n \"remoteStorageManager\": {\n \"description\": \"Configuration for the Remote Storage Manager.\",\n \"properties\": {\n \"className\": {\n \"description\": \"The class name for the `RemoteStorageManager` implementation.\",\n \"type\": \"string\"\n },\n \"classPath\": {\n \"description\": \"The class path for the `RemoteStorageManager` implementation.\",\n \"type\": \"string\"\n },\n \"config\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The additional configuration map for the `RemoteStorageManager` implementation. Keys will be automatically prefixed with `rsm.config.`, and added to Kafka broker configuration.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Storage type, only 'custom' is supported at the moment.\",\n \"enum\": [\n \"custom\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"The Kafka broker version. Defaults to the latest version. Consult the user documentation to understand the process required to upgrade or downgrade the version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"listeners\"\n ],\n \"type\": \"object\"\n },\n \"kafkaExporter\": {\n \"description\": \"Configuration of the Kafka Exporter. Kafka Exporter can provide additional metrics, for example lag of consumer group at topic/partition.\",\n \"properties\": {\n \"enableSaramaLogging\": {\n \"description\": \"Enable Sarama logging, a Go client library used by the Kafka Exporter.\",\n \"type\": \"boolean\"\n },\n \"groupExcludeRegex\": {\n \"description\": \"Regular expression to specify which consumer groups to exclude.\",\n \"type\": \"string\"\n },\n \"groupRegex\": {\n \"description\": \"Regular expression to specify which consumer groups to collect. Default value is `.*`.\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"The container image used for the Kafka Exporter pods. If no image name is explicitly specified, the image name corresponds to the version specified in the Cluster Operator configuration. If an image name is not defined in the Cluster Operator configuration, a default value is used.\",\n \"type\": \"string\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness check.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Only log messages with the given severity or above. Valid levels: [`info`, `debug`, `trace`]. Default log level is `info`.\",\n \"type\": \"string\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness check.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"showAllOffsets\": {\n \"description\": \"Whether show the offset/lag for all consumer group, otherwise, only show connected consumer groups.\",\n \"type\": \"boolean\"\n },\n \"template\": {\n \"description\": \"Customization of deployment templates and pods.\",\n \"properties\": {\n \"container\": {\n \"description\": \"Template for the Kafka Exporter container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"description\": \"Template for Kafka Exporter `Deployment`.\",\n \"properties\": {\n \"deploymentStrategy\": {\n \"description\": \"Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.\",\n \"enum\": [\n \"RollingUpdate\",\n \"Recreate\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Kafka Exporter `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"service\": {\n \"description\": \"Template for Kafka Exporter `Service`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the Kafka Exporter service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"topicExcludeRegex\": {\n \"description\": \"Regular expression to specify which topics to exclude.\",\n \"type\": \"string\"\n },\n \"topicRegex\": {\n \"description\": \"Regular expression to specify which topics to collect. Default value is `.*`.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"maintenanceTimeWindows\": {\n \"description\": \"A list of time windows for maintenance tasks (that is, certificates renewal). Each time window is defined by a cron expression.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"zookeeper\": {\n \"description\": \"Configuration of the ZooKeeper cluster. This section is required when running a ZooKeeper-based Apache Kafka cluster.\",\n \"properties\": {\n \"config\": {\n \"description\": \"The ZooKeeper broker config. Properties with the following prefixes cannot be set: server., dataDir, dataLogDir, clientPort, authProvider, quorum.auth, requireClientAuthScheme, snapshot.trust.empty, standaloneEnabled, reconfigEnabled, 4lw.commands.whitelist, secureClientPort, ssl., serverCnxnFactory, sslQuorum (with the exception of: ssl.protocol, ssl.quorum.protocol, ssl.enabledProtocols, ssl.quorum.enabledProtocols, ssl.ciphersuites, ssl.quorum.ciphersuites, ssl.hostnameVerification, ssl.quorum.hostnameVerification).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"image\": {\n \"description\": \"The container image used for ZooKeeper pods. If no image name is explicitly specified, it is determined based on the Kafka version set in `spec.kafka.version`. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration.\",\n \"type\": \"string\"\n },\n \"jmxOptions\": {\n \"description\": \"JMX Options for Zookeeper nodes.\",\n \"properties\": {\n \"authentication\": {\n \"description\": \"Authentication configuration for connecting to the JMX port.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Authentication type. Currently the only supported types are `password`.`password` type creates a username and protected port with no TLS.\",\n \"enum\": [\n \"password\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"jvmOptions\": {\n \"description\": \"JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration for ZooKeeper.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"metricsConfig\": {\n \"description\": \"Metrics configuration.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Metrics type. Only 'jmxPrometheusExporter' supported currently.\",\n \"enum\": [\n \"jmxPrometheusExporter\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"ConfigMap entry where the Prometheus JMX Exporter configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"The number of pods in the cluster.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storage\": {\n \"description\": \"Storage configuration (disk). Cannot be updated.\",\n \"properties\": {\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation.\",\n \"type\": \"string\"\n },\n \"deleteClaim\": {\n \"description\": \"Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed.\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"kraftMetadata\": {\n \"description\": \"Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set.\",\n \"enum\": [\n \"shared\"\n ],\n \"type\": \"string\"\n },\n \"overrides\": {\n \"description\": \"Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.\",\n \"items\": {\n \"properties\": {\n \"broker\": {\n \"description\": \"Id of the kafka broker (broker identifier).\",\n \"type\": \"integer\"\n },\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation for this broker.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume.\",\n \"type\": \"object\"\n },\n \"size\": {\n \"description\": \"When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`.\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"description\": \"When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi).\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Storage type, must be either 'ephemeral' or 'persistent-claim'.\",\n \"enum\": [\n \"ephemeral\",\n \"persistent-claim\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template for ZooKeeper cluster resources. The template allows users to specify how the Kubernetes resources are generated.\",\n \"properties\": {\n \"clientService\": {\n \"description\": \"Template for ZooKeeper client `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"jmxSecret\": {\n \"description\": \"Template for Secret of the Zookeeper Cluster JMX authentication.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"nodesService\": {\n \"description\": \"Template for ZooKeeper nodes `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"Template for all ZooKeeper `PersistentVolumeClaims`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for ZooKeeper `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podDisruptionBudget\": {\n \"description\": \"Template for ZooKeeper `PodDisruptionBudget`.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"description\": \"Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podSet\": {\n \"description\": \"Template for ZooKeeper `StrimziPodSet` resource.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the ZooKeeper service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"statefulset\": {\n \"description\": \"Template for ZooKeeper `StatefulSet`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podManagementPolicy\": {\n \"description\": \"PodManagementPolicy which will be used for this StatefulSet. Valid values are `Parallel` and `OrderedReady`. Defaults to `Parallel`.\",\n \"enum\": [\n \"OrderedReady\",\n \"Parallel\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"zookeeperContainer\": {\n \"description\": \"Template for the ZooKeeper container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"replicas\",\n \"storage\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"kafka\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaBridge.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaBridge.json new file mode 100644 index 00000000000..eda2579cac0 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaBridge.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaBridge", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the Kafka Bridge.\",\n \"properties\": {\n \"adminClient\": {\n \"description\": \"Kafka AdminClient related configuration.\",\n \"properties\": {\n \"config\": {\n \"description\": \"The Kafka AdminClient configuration used for AdminClient instances created by the bridge.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"authentication\": {\n \"description\": \"Authentication configuration for connecting to the cluster.\",\n \"properties\": {\n \"accessToken\": {\n \"description\": \"Link to Kubernetes Secret containing the access token which was obtained from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"accessTokenIsJwt\": {\n \"description\": \"Configure whether access token should be treated as JWT. This should be set to `false` if the authorization server returns opaque tokens. Defaults to `true`.\",\n \"type\": \"boolean\"\n },\n \"accessTokenLocation\": {\n \"description\": \"Path to the token file containing an access token to be used for authentication.\",\n \"type\": \"string\"\n },\n \"audience\": {\n \"description\": \"OAuth audience to use when authenticating against the authorization server. Some authorization servers require the audience to be explicitly set. The possible values depend on how the authorization server is configured. By default, `audience` is not specified when performing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"certificateAndKey\": {\n \"description\": \"Reference to the `Secret` which holds the certificate and private key pair.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the Secret.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"The name of the private key in the Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"certificate\",\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertion\": {\n \"description\": \"Link to Kubernetes secret containing the client assertion which was manually configured for the client.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertionLocation\": {\n \"description\": \"Path to the file containing the client assertion to be used for authentication.\",\n \"type\": \"string\"\n },\n \"clientAssertionType\": {\n \"description\": \"The client assertion type. If not set, and either `clientAssertion` or `clientAssertionLocation` is configured, this value defaults to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.\",\n \"type\": \"string\"\n },\n \"clientId\": {\n \"description\": \"OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"Link to Kubernetes Secret containing the OAuth client secret which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"connectTimeoutSeconds\": {\n \"description\": \"The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"disableTlsHostnameVerification\": {\n \"description\": \"Enable or disable TLS hostname verification. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"enableMetrics\": {\n \"description\": \"Enable or disable OAuth metrics. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"httpRetries\": {\n \"description\": \"The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.\",\n \"type\": \"integer\"\n },\n \"httpRetryPauseMs\": {\n \"description\": \"The pause to take before retrying a failed HTTP request. If not set, the default is to not pause at all but to immediately repeat a request.\",\n \"type\": \"integer\"\n },\n \"includeAcceptHeader\": {\n \"description\": \"Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"maxTokenExpirySeconds\": {\n \"description\": \"Set or limit time-to-live of the access tokens to the specified number of seconds. This should be set if the authorization server returns opaque tokens.\",\n \"type\": \"integer\"\n },\n \"passwordSecret\": {\n \"description\": \"Reference to the `Secret` which holds the password.\",\n \"properties\": {\n \"password\": {\n \"description\": \"The name of the key in the Secret under which the password is stored.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the password.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"password\"\n ],\n \"type\": \"object\"\n },\n \"readTimeoutSeconds\": {\n \"description\": \"The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"refreshToken\": {\n \"description\": \"Link to Kubernetes Secret containing the refresh token which can be used to obtain access token from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"saslExtensions\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"SASL extensions parameters.\",\n \"type\": \"object\"\n },\n \"scope\": {\n \"description\": \"OAuth scope to use when authenticating against the authorization server. Some authorization servers require this to be set. The possible values depend on how authorization server is configured. By default `scope` is not specified when doing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"tlsTrustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection to the OAuth server.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tokenEndpointUri\": {\n \"description\": \"Authorization server token endpoint URI.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Authentication type. Currently the supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, and 'oauth'. `scram-sha-256` and `scram-sha-512` types use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 Authentication, respectively. `plain` type uses SASL PLAIN Authentication. `oauth` type uses SASL OAUTHBEARER Authentication. The `tls` type uses TLS Client Authentication. The `tls` type is supported only over TLS connections.\",\n \"enum\": [\n \"tls\",\n \"scram-sha-256\",\n \"scram-sha-512\",\n \"plain\",\n \"oauth\"\n ],\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username used for the authentication.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"bootstrapServers\": {\n \"description\": \"A list of host:port pairs for establishing the initial connection to the Kafka cluster.\",\n \"type\": \"string\"\n },\n \"clientRackInitImage\": {\n \"description\": \"The image of the init container used for initializing the `client.rack`.\",\n \"type\": \"string\"\n },\n \"consumer\": {\n \"description\": \"Kafka consumer related configuration.\",\n \"properties\": {\n \"config\": {\n \"description\": \"The Kafka consumer configuration used for consumer instances created by the bridge. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, group.id, sasl., security. (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"enabled\": {\n \"description\": \"Whether the HTTP consumer should be enabled or disabled. The default is enabled (`true`).\",\n \"type\": \"boolean\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout in seconds for deleting inactive consumers, default is -1 (disabled).\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"enableMetrics\": {\n \"description\": \"Enable the metrics for the Kafka Bridge. Default is false.\",\n \"type\": \"boolean\"\n },\n \"http\": {\n \"description\": \"The HTTP related configuration.\",\n \"properties\": {\n \"cors\": {\n \"description\": \"CORS configuration for the HTTP Bridge.\",\n \"properties\": {\n \"allowedMethods\": {\n \"description\": \"List of allowed HTTP methods.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"allowedOrigins\": {\n \"description\": \"List of allowed origins. Java regular expressions can be used.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"allowedOrigins\",\n \"allowedMethods\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port which is the server listening on.\",\n \"minimum\": 1023,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"The container image used for Kafka Bridge pods. If no image name is explicitly specified, the image name corresponds to the image specified in the Cluster Operator configuration. If an image name is not defined in the Cluster Operator configuration, a default value is used.\",\n \"type\": \"string\"\n },\n \"jvmOptions\": {\n \"description\": \"**Currently not supported** JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration for Kafka Bridge.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"producer\": {\n \"description\": \"Kafka producer related configuration.\",\n \"properties\": {\n \"config\": {\n \"description\": \"The Kafka producer configuration used for producer instances created by the bridge. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, sasl., security. (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"enabled\": {\n \"description\": \"Whether the HTTP producer should be enabled or disabled. The default is enabled (`true`).\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"rack\": {\n \"description\": \"Configuration of the node label which will be used as the client.rack consumer configuration.\",\n \"properties\": {\n \"topologyKey\": {\n \"description\": \"A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2.\",\n \"example\": \"topology.kubernetes.io/zone\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"The number of pods in the `Deployment`. Defaults to `1`.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template for Kafka Bridge resources. The template allows users to specify how a `Deployment` and `Pod` is generated.\",\n \"properties\": {\n \"apiService\": {\n \"description\": \"Template for Kafka Bridge API `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"bridgeContainer\": {\n \"description\": \"Template for the Kafka Bridge container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterRoleBinding\": {\n \"description\": \"Template for the Kafka Bridge ClusterRoleBinding.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"description\": \"Template for Kafka Bridge `Deployment`.\",\n \"properties\": {\n \"deploymentStrategy\": {\n \"description\": \"Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.\",\n \"enum\": [\n \"RollingUpdate\",\n \"Recreate\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"initContainer\": {\n \"description\": \"Template for the Kafka Bridge init container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Kafka Bridge `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podDisruptionBudget\": {\n \"description\": \"Template for Kafka Bridge `PodDisruptionBudget`.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"description\": \"Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the Kafka Bridge service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS configuration for connecting Kafka Bridge to the cluster.\",\n \"properties\": {\n \"trustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"tracing\": {\n \"description\": \"The configuration of tracing in Kafka Bridge.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Type of the tracing used. Currently the only supported type is `opentelemetry` for OpenTelemetry tracing. As of Strimzi 0.37.0, `jaeger` type is not supported anymore and this option is ignored.\",\n \"enum\": [\n \"jaeger\",\n \"opentelemetry\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"bootstrapServers\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka Bridge\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka Bridge", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaConnect.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaConnect.json new file mode 100644 index 00000000000..11ce16aba82 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaConnect.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaConnect", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the Kafka Connect cluster.\",\n \"properties\": {\n \"authentication\": {\n \"description\": \"Authentication configuration for Kafka Connect.\",\n \"properties\": {\n \"accessToken\": {\n \"description\": \"Link to Kubernetes Secret containing the access token which was obtained from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"accessTokenIsJwt\": {\n \"description\": \"Configure whether access token should be treated as JWT. This should be set to `false` if the authorization server returns opaque tokens. Defaults to `true`.\",\n \"type\": \"boolean\"\n },\n \"accessTokenLocation\": {\n \"description\": \"Path to the token file containing an access token to be used for authentication.\",\n \"type\": \"string\"\n },\n \"audience\": {\n \"description\": \"OAuth audience to use when authenticating against the authorization server. Some authorization servers require the audience to be explicitly set. The possible values depend on how the authorization server is configured. By default, `audience` is not specified when performing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"certificateAndKey\": {\n \"description\": \"Reference to the `Secret` which holds the certificate and private key pair.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the Secret.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"The name of the private key in the Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"certificate\",\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertion\": {\n \"description\": \"Link to Kubernetes secret containing the client assertion which was manually configured for the client.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertionLocation\": {\n \"description\": \"Path to the file containing the client assertion to be used for authentication.\",\n \"type\": \"string\"\n },\n \"clientAssertionType\": {\n \"description\": \"The client assertion type. If not set, and either `clientAssertion` or `clientAssertionLocation` is configured, this value defaults to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.\",\n \"type\": \"string\"\n },\n \"clientId\": {\n \"description\": \"OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"Link to Kubernetes Secret containing the OAuth client secret which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"connectTimeoutSeconds\": {\n \"description\": \"The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"disableTlsHostnameVerification\": {\n \"description\": \"Enable or disable TLS hostname verification. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"enableMetrics\": {\n \"description\": \"Enable or disable OAuth metrics. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"httpRetries\": {\n \"description\": \"The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.\",\n \"type\": \"integer\"\n },\n \"httpRetryPauseMs\": {\n \"description\": \"The pause to take before retrying a failed HTTP request. If not set, the default is to not pause at all but to immediately repeat a request.\",\n \"type\": \"integer\"\n },\n \"includeAcceptHeader\": {\n \"description\": \"Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"maxTokenExpirySeconds\": {\n \"description\": \"Set or limit time-to-live of the access tokens to the specified number of seconds. This should be set if the authorization server returns opaque tokens.\",\n \"type\": \"integer\"\n },\n \"passwordSecret\": {\n \"description\": \"Reference to the `Secret` which holds the password.\",\n \"properties\": {\n \"password\": {\n \"description\": \"The name of the key in the Secret under which the password is stored.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the password.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"password\"\n ],\n \"type\": \"object\"\n },\n \"readTimeoutSeconds\": {\n \"description\": \"The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"refreshToken\": {\n \"description\": \"Link to Kubernetes Secret containing the refresh token which can be used to obtain access token from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"saslExtensions\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"SASL extensions parameters.\",\n \"type\": \"object\"\n },\n \"scope\": {\n \"description\": \"OAuth scope to use when authenticating against the authorization server. Some authorization servers require this to be set. The possible values depend on how authorization server is configured. By default `scope` is not specified when doing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"tlsTrustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection to the OAuth server.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tokenEndpointUri\": {\n \"description\": \"Authorization server token endpoint URI.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Authentication type. Currently the supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, and 'oauth'. `scram-sha-256` and `scram-sha-512` types use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 Authentication, respectively. `plain` type uses SASL PLAIN Authentication. `oauth` type uses SASL OAUTHBEARER Authentication. The `tls` type uses TLS Client Authentication. The `tls` type is supported only over TLS connections.\",\n \"enum\": [\n \"tls\",\n \"scram-sha-256\",\n \"scram-sha-512\",\n \"plain\",\n \"oauth\"\n ],\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username used for the authentication.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"bootstrapServers\": {\n \"description\": \"Bootstrap servers to connect to. This should be given as a comma separated list of _\\u003chostname\\u003e_:_\\u003cport\\u003e_ pairs.\",\n \"type\": \"string\"\n },\n \"build\": {\n \"description\": \"Configures how the Connect container image should be built. Optional.\",\n \"properties\": {\n \"output\": {\n \"description\": \"Configures where should the newly built image be stored. Required.\",\n \"properties\": {\n \"additionalKanikoOptions\": {\n \"description\": \"Configures additional options which will be passed to the Kaniko executor when building the new Connect image. Allowed options are: --customPlatform, --insecure, --insecure-pull, --insecure-registry, --log-format, --log-timestamp, --registry-mirror, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-pull, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run. These options will be used only on Kubernetes where the Kaniko executor is used. They will be ignored on OpenShift. The options are described in the link:https://github.com/GoogleContainerTools/kaniko[Kaniko GitHub repository^]. Changing this field does not trigger new build of the Kafka Connect image.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"description\": \"The name of the image which will be built. Required.\",\n \"type\": \"string\"\n },\n \"pushSecret\": {\n \"description\": \"Container Registry Secret with the credentials for pushing the newly built image.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Output type. Must be either `docker` for pushing the newly build image to Docker compatible registry or `imagestream` for pushing the image to OpenShift ImageStream. Required.\",\n \"enum\": [\n \"docker\",\n \"imagestream\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"plugins\": {\n \"description\": \"List of connector plugins which should be added to the Kafka Connect. Required.\",\n \"items\": {\n \"properties\": {\n \"artifacts\": {\n \"description\": \"List of artifacts which belong to this connector plugin. Required.\",\n \"items\": {\n \"properties\": {\n \"artifact\": {\n \"description\": \"Maven artifact id. Applicable to the `maven` artifact type only.\",\n \"type\": \"string\"\n },\n \"fileName\": {\n \"description\": \"Name under which the artifact will be stored.\",\n \"type\": \"string\"\n },\n \"group\": {\n \"description\": \"Maven group id. Applicable to the `maven` artifact type only.\",\n \"type\": \"string\"\n },\n \"insecure\": {\n \"description\": \"By default, connections using TLS are verified to check they are secure. The server certificate used must be valid, trusted, and contain the server name. By setting this option to `true`, all TLS verification is disabled and the artifact will be downloaded, even when the server is considered insecure.\",\n \"type\": \"boolean\"\n },\n \"repository\": {\n \"description\": \"Maven repository to download the artifact from. Applicable to the `maven` artifact type only.\",\n \"type\": \"string\"\n },\n \"sha512sum\": {\n \"description\": \"SHA512 checksum of the artifact. Optional. If specified, the checksum will be verified while building the new container. If not specified, the downloaded artifact will not be verified. Not applicable to the `maven` artifact type. \",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Artifact type. Currently, the supported artifact types are `tgz`, `jar`, `zip`, `other` and `maven`.\",\n \"enum\": [\n \"jar\",\n \"tgz\",\n \"zip\",\n \"maven\",\n \"other\"\n ],\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"URL of the artifact which will be downloaded. Strimzi does not do any security scanning of the downloaded artifacts. For security reasons, you should first verify the artifacts manually and configure the checksum verification to make sure the same artifact is used in the automated build. Required for `jar`, `zip`, `tgz` and `other` artifacts. Not applicable to the `maven` artifact type.\",\n \"pattern\": \"^(https?|ftp)://[-a-zA-Z0-9+\\u0026@#/%?=~_|!:,.;]*[-a-zA-Z0-9+\\u0026@#/%=~_|]$\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Maven version number. Applicable to the `maven` artifact type only.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"The unique name of the connector plugin. Will be used to generate the path where the connector artifacts will be stored. The name has to be unique within the KafkaConnect resource. The name has to follow the following pattern: `^[a-z][-_a-z0-9]*[a-z]$`. Required.\",\n \"pattern\": \"^[a-z0-9][-_a-z0-9]*[a-z0-9]$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"artifacts\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve for the build.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"output\",\n \"plugins\"\n ],\n \"type\": \"object\"\n },\n \"clientRackInitImage\": {\n \"description\": \"The image of the init container used for initializing the `client.rack`.\",\n \"type\": \"string\"\n },\n \"config\": {\n \"description\": \"The Kafka Connect configuration. Properties with the following prefixes cannot be set: ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"externalConfiguration\": {\n \"description\": \"Pass data from Secrets or ConfigMaps to the Kafka Connect pods and use them to configure connectors.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Makes data from a Secret or ConfigMap available in the Kafka Connect pods as environment variables.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable which will be passed to the Kafka Connect pods. The name of the environment variable cannot start with `KAFKA_` or `STRIMZI_`.\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Value of the environment variable which will be passed to the Kafka Connect pods. It can be passed either as a reference to Secret or ConfigMap field. The field has to specify exactly one Secret or ConfigMap.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to a key in a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Reference to a key in a Secret.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Makes data from a Secret or ConfigMap available in the Kafka Connect pods as volumes.\",\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"description\": \"Reference to a key in a ConfigMap. Exactly one Secret or ConfigMap has to be specified.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the volume which will be added to the Kafka Connect pods.\",\n \"type\": \"string\"\n },\n \"secret\": {\n \"description\": \"Reference to a key in a Secret. Exactly one Secret or ConfigMap has to be specified.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"The container image used for Kafka Connect pods. If no image name is explicitly specified, it is determined based on the `spec.version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration.\",\n \"type\": \"string\"\n },\n \"jmxOptions\": {\n \"description\": \"JMX Options.\",\n \"properties\": {\n \"authentication\": {\n \"description\": \"Authentication configuration for connecting to the JMX port.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Authentication type. Currently the only supported types are `password`.`password` type creates a username and protected port with no TLS.\",\n \"enum\": [\n \"password\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"jvmOptions\": {\n \"description\": \"JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration for Kafka Connect.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"metricsConfig\": {\n \"description\": \"Metrics configuration.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Metrics type. Only 'jmxPrometheusExporter' supported currently.\",\n \"enum\": [\n \"jmxPrometheusExporter\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"ConfigMap entry where the Prometheus JMX Exporter configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"rack\": {\n \"description\": \"Configuration of the node label which will be used as the `client.rack` consumer configuration.\",\n \"properties\": {\n \"topologyKey\": {\n \"description\": \"A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2.\",\n \"example\": \"topology.kubernetes.io/zone\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"The number of pods in the Kafka Connect group. Defaults to `3`.\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"The maximum limits for CPU and memory resources and the requested initial resources.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template for Kafka Connect and Kafka MirrorMaker 2 resources. The template allows users to specify how the `Pods`, `Service`, and other services are generated.\",\n \"properties\": {\n \"apiService\": {\n \"description\": \"Template for Kafka Connect API `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"buildConfig\": {\n \"description\": \"Template for the Kafka Connect BuildConfig used to build new container images. The BuildConfig is used only on OpenShift.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pullSecret\": {\n \"description\": \"Container Registry Secret with the credentials for pulling the base image.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"buildContainer\": {\n \"description\": \"Template for the Kafka Connect Build container. The build container is used only on Kubernetes.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"buildPod\": {\n \"description\": \"Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"buildServiceAccount\": {\n \"description\": \"Template for the Kafka Connect Build service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterRoleBinding\": {\n \"description\": \"Template for the Kafka Connect ClusterRoleBinding.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"connectContainer\": {\n \"description\": \"Template for the Kafka Connect container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"description\": \"Template for Kafka Connect `Deployment`.\",\n \"properties\": {\n \"deploymentStrategy\": {\n \"description\": \"Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.\",\n \"enum\": [\n \"RollingUpdate\",\n \"Recreate\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"headlessService\": {\n \"description\": \"Template for Kafka Connect headless `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"initContainer\": {\n \"description\": \"Template for the Kafka init container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"jmxSecret\": {\n \"description\": \"Template for Secret of the Kafka Connect Cluster JMX authentication.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Kafka Connect `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podDisruptionBudget\": {\n \"description\": \"Template for Kafka Connect `PodDisruptionBudget`.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"description\": \"Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podSet\": {\n \"description\": \"Template for Kafka Connect `StrimziPodSet` resource.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the Kafka Connect service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tls\": {\n \"description\": \"TLS configuration.\",\n \"properties\": {\n \"trustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"tracing\": {\n \"description\": \"The configuration of tracing in Kafka Connect.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Type of the tracing used. Currently the only supported type is `opentelemetry` for OpenTelemetry tracing. As of Strimzi 0.37.0, `jaeger` type is not supported anymore and this option is ignored.\",\n \"enum\": [\n \"jaeger\",\n \"opentelemetry\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"The Kafka Connect version. Defaults to the latest version. Consult the user documentation to understand the process required to upgrade or downgrade the version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"bootstrapServers\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka Connect\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka Connect", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaConnector.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaConnector.json new file mode 100644 index 00000000000..06966ce6281 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaConnector.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaConnector", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the Kafka Connector.\",\n \"properties\": {\n \"autoRestart\": {\n \"description\": \"Automatic restart of connector and tasks configuration.\",\n \"properties\": {\n \"enabled\": {\n \"description\": \"Whether automatic restart for failed connectors and tasks should be enabled or disabled.\",\n \"type\": \"boolean\"\n },\n \"maxRestarts\": {\n \"description\": \"The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"class\": {\n \"description\": \"The Class for the Kafka Connector.\",\n \"type\": \"string\"\n },\n \"config\": {\n \"description\": \"The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"pause\": {\n \"description\": \"Whether the connector should be paused. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"state\": {\n \"description\": \"The state the connector should be in. Defaults to running.\",\n \"enum\": [\n \"paused\",\n \"stopped\",\n \"running\"\n ],\n \"type\": \"string\"\n },\n \"tasksMax\": {\n \"description\": \"The maximum number of tasks for the Kafka Connector.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka Connector\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka Connector", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaMirrorMaker.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaMirrorMaker.json new file mode 100644 index 00000000000..6cdead4d3fc --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaMirrorMaker.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaMirrorMaker", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of Kafka MirrorMaker.\",\n \"oneOf\": [\n {\n \"properties\": {\n \"include\": {}\n },\n \"required\": [\n \"include\"\n ]\n },\n {\n \"properties\": {\n \"whitelist\": {}\n },\n \"required\": [\n \"whitelist\"\n ]\n }\n ],\n \"properties\": {\n \"consumer\": {\n \"description\": \"Configuration of source cluster.\",\n \"properties\": {\n \"authentication\": {\n \"description\": \"Authentication configuration for connecting to the cluster.\",\n \"properties\": {\n \"accessToken\": {\n \"description\": \"Link to Kubernetes Secret containing the access token which was obtained from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"accessTokenIsJwt\": {\n \"description\": \"Configure whether access token should be treated as JWT. This should be set to `false` if the authorization server returns opaque tokens. Defaults to `true`.\",\n \"type\": \"boolean\"\n },\n \"accessTokenLocation\": {\n \"description\": \"Path to the token file containing an access token to be used for authentication.\",\n \"type\": \"string\"\n },\n \"audience\": {\n \"description\": \"OAuth audience to use when authenticating against the authorization server. Some authorization servers require the audience to be explicitly set. The possible values depend on how the authorization server is configured. By default, `audience` is not specified when performing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"certificateAndKey\": {\n \"description\": \"Reference to the `Secret` which holds the certificate and private key pair.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the Secret.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"The name of the private key in the Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"certificate\",\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertion\": {\n \"description\": \"Link to Kubernetes secret containing the client assertion which was manually configured for the client.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertionLocation\": {\n \"description\": \"Path to the file containing the client assertion to be used for authentication.\",\n \"type\": \"string\"\n },\n \"clientAssertionType\": {\n \"description\": \"The client assertion type. If not set, and either `clientAssertion` or `clientAssertionLocation` is configured, this value defaults to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.\",\n \"type\": \"string\"\n },\n \"clientId\": {\n \"description\": \"OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"Link to Kubernetes Secret containing the OAuth client secret which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"connectTimeoutSeconds\": {\n \"description\": \"The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"disableTlsHostnameVerification\": {\n \"description\": \"Enable or disable TLS hostname verification. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"enableMetrics\": {\n \"description\": \"Enable or disable OAuth metrics. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"httpRetries\": {\n \"description\": \"The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.\",\n \"type\": \"integer\"\n },\n \"httpRetryPauseMs\": {\n \"description\": \"The pause to take before retrying a failed HTTP request. If not set, the default is to not pause at all but to immediately repeat a request.\",\n \"type\": \"integer\"\n },\n \"includeAcceptHeader\": {\n \"description\": \"Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"maxTokenExpirySeconds\": {\n \"description\": \"Set or limit time-to-live of the access tokens to the specified number of seconds. This should be set if the authorization server returns opaque tokens.\",\n \"type\": \"integer\"\n },\n \"passwordSecret\": {\n \"description\": \"Reference to the `Secret` which holds the password.\",\n \"properties\": {\n \"password\": {\n \"description\": \"The name of the key in the Secret under which the password is stored.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the password.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"password\"\n ],\n \"type\": \"object\"\n },\n \"readTimeoutSeconds\": {\n \"description\": \"The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"refreshToken\": {\n \"description\": \"Link to Kubernetes Secret containing the refresh token which can be used to obtain access token from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"saslExtensions\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"SASL extensions parameters.\",\n \"type\": \"object\"\n },\n \"scope\": {\n \"description\": \"OAuth scope to use when authenticating against the authorization server. Some authorization servers require this to be set. The possible values depend on how authorization server is configured. By default `scope` is not specified when doing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"tlsTrustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection to the OAuth server.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tokenEndpointUri\": {\n \"description\": \"Authorization server token endpoint URI.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Authentication type. Currently the supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, and 'oauth'. `scram-sha-256` and `scram-sha-512` types use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 Authentication, respectively. `plain` type uses SASL PLAIN Authentication. `oauth` type uses SASL OAUTHBEARER Authentication. The `tls` type uses TLS Client Authentication. The `tls` type is supported only over TLS connections.\",\n \"enum\": [\n \"tls\",\n \"scram-sha-256\",\n \"scram-sha-512\",\n \"plain\",\n \"oauth\"\n ],\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username used for the authentication.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"bootstrapServers\": {\n \"description\": \"A list of host:port pairs for establishing the initial connection to the Kafka cluster.\",\n \"type\": \"string\"\n },\n \"config\": {\n \"description\": \"The MirrorMaker consumer config. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, group.id, sasl., security., interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"groupId\": {\n \"description\": \"A unique string that identifies the consumer group this consumer belongs to.\",\n \"type\": \"string\"\n },\n \"numStreams\": {\n \"description\": \"Specifies the number of consumer stream threads to create.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"offsetCommitInterval\": {\n \"description\": \"Specifies the offset auto-commit interval in ms. Default value is 60000.\",\n \"type\": \"integer\"\n },\n \"tls\": {\n \"description\": \"TLS configuration for connecting MirrorMaker to the cluster.\",\n \"properties\": {\n \"trustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"bootstrapServers\",\n \"groupId\"\n ],\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"The container image used for Kafka MirrorMaker pods. If no image name is explicitly specified, it is determined based on the `spec.version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration.\",\n \"type\": \"string\"\n },\n \"include\": {\n \"description\": \"List of topics which are included for mirroring. This option allows any regular expression using Java-style regular expressions. Mirroring two topics named A and B is achieved by using the expression `A\\\\|B`. Or, as a special case, you can mirror all topics using the regular expression `*`. You can also specify multiple regular expressions separated by commas.\",\n \"type\": \"string\"\n },\n \"jvmOptions\": {\n \"description\": \"JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration for MirrorMaker.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"metricsConfig\": {\n \"description\": \"Metrics configuration.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Metrics type. Only 'jmxPrometheusExporter' supported currently.\",\n \"enum\": [\n \"jmxPrometheusExporter\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"ConfigMap entry where the Prometheus JMX Exporter configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"producer\": {\n \"description\": \"Configuration of target cluster.\",\n \"properties\": {\n \"abortOnSendFailure\": {\n \"description\": \"Flag to set the MirrorMaker to exit on a failed send. Default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"authentication\": {\n \"description\": \"Authentication configuration for connecting to the cluster.\",\n \"properties\": {\n \"accessToken\": {\n \"description\": \"Link to Kubernetes Secret containing the access token which was obtained from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"accessTokenIsJwt\": {\n \"description\": \"Configure whether access token should be treated as JWT. This should be set to `false` if the authorization server returns opaque tokens. Defaults to `true`.\",\n \"type\": \"boolean\"\n },\n \"accessTokenLocation\": {\n \"description\": \"Path to the token file containing an access token to be used for authentication.\",\n \"type\": \"string\"\n },\n \"audience\": {\n \"description\": \"OAuth audience to use when authenticating against the authorization server. Some authorization servers require the audience to be explicitly set. The possible values depend on how the authorization server is configured. By default, `audience` is not specified when performing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"certificateAndKey\": {\n \"description\": \"Reference to the `Secret` which holds the certificate and private key pair.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the Secret.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"The name of the private key in the Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"certificate\",\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertion\": {\n \"description\": \"Link to Kubernetes secret containing the client assertion which was manually configured for the client.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertionLocation\": {\n \"description\": \"Path to the file containing the client assertion to be used for authentication.\",\n \"type\": \"string\"\n },\n \"clientAssertionType\": {\n \"description\": \"The client assertion type. If not set, and either `clientAssertion` or `clientAssertionLocation` is configured, this value defaults to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.\",\n \"type\": \"string\"\n },\n \"clientId\": {\n \"description\": \"OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"Link to Kubernetes Secret containing the OAuth client secret which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"connectTimeoutSeconds\": {\n \"description\": \"The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"disableTlsHostnameVerification\": {\n \"description\": \"Enable or disable TLS hostname verification. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"enableMetrics\": {\n \"description\": \"Enable or disable OAuth metrics. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"httpRetries\": {\n \"description\": \"The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.\",\n \"type\": \"integer\"\n },\n \"httpRetryPauseMs\": {\n \"description\": \"The pause to take before retrying a failed HTTP request. If not set, the default is to not pause at all but to immediately repeat a request.\",\n \"type\": \"integer\"\n },\n \"includeAcceptHeader\": {\n \"description\": \"Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"maxTokenExpirySeconds\": {\n \"description\": \"Set or limit time-to-live of the access tokens to the specified number of seconds. This should be set if the authorization server returns opaque tokens.\",\n \"type\": \"integer\"\n },\n \"passwordSecret\": {\n \"description\": \"Reference to the `Secret` which holds the password.\",\n \"properties\": {\n \"password\": {\n \"description\": \"The name of the key in the Secret under which the password is stored.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the password.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"password\"\n ],\n \"type\": \"object\"\n },\n \"readTimeoutSeconds\": {\n \"description\": \"The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"refreshToken\": {\n \"description\": \"Link to Kubernetes Secret containing the refresh token which can be used to obtain access token from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"saslExtensions\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"SASL extensions parameters.\",\n \"type\": \"object\"\n },\n \"scope\": {\n \"description\": \"OAuth scope to use when authenticating against the authorization server. Some authorization servers require this to be set. The possible values depend on how authorization server is configured. By default `scope` is not specified when doing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"tlsTrustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection to the OAuth server.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tokenEndpointUri\": {\n \"description\": \"Authorization server token endpoint URI.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Authentication type. Currently the supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, and 'oauth'. `scram-sha-256` and `scram-sha-512` types use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 Authentication, respectively. `plain` type uses SASL PLAIN Authentication. `oauth` type uses SASL OAUTHBEARER Authentication. The `tls` type uses TLS Client Authentication. The `tls` type is supported only over TLS connections.\",\n \"enum\": [\n \"tls\",\n \"scram-sha-256\",\n \"scram-sha-512\",\n \"plain\",\n \"oauth\"\n ],\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username used for the authentication.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"bootstrapServers\": {\n \"description\": \"A list of host:port pairs for establishing the initial connection to the Kafka cluster.\",\n \"type\": \"string\"\n },\n \"config\": {\n \"description\": \"The MirrorMaker producer config. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, sasl., security., interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"tls\": {\n \"description\": \"TLS configuration for connecting MirrorMaker to the cluster.\",\n \"properties\": {\n \"trustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"bootstrapServers\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"The number of pods in the `Deployment`.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template to specify how Kafka MirrorMaker resources, `Deployments` and `Pods`, are generated.\",\n \"properties\": {\n \"deployment\": {\n \"description\": \"Template for Kafka MirrorMaker `Deployment`.\",\n \"properties\": {\n \"deploymentStrategy\": {\n \"description\": \"Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.\",\n \"enum\": [\n \"RollingUpdate\",\n \"Recreate\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"mirrorMakerContainer\": {\n \"description\": \"Template for Kafka MirrorMaker container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Kafka MirrorMaker `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podDisruptionBudget\": {\n \"description\": \"Template for Kafka MirrorMaker `PodDisruptionBudget`.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"description\": \"Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the Kafka MirrorMaker service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tracing\": {\n \"description\": \"The configuration of tracing in Kafka MirrorMaker.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Type of the tracing used. Currently the only supported type is `opentelemetry` for OpenTelemetry tracing. As of Strimzi 0.37.0, `jaeger` type is not supported anymore and this option is ignored.\",\n \"enum\": [\n \"jaeger\",\n \"opentelemetry\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"The Kafka MirrorMaker version. Defaults to the latest version. Consult the documentation to understand the process required to upgrade or downgrade the version.\",\n \"type\": \"string\"\n },\n \"whitelist\": {\n \"description\": \"List of topics which are included for mirroring. This option allows any regular expression using Java-style regular expressions. Mirroring two topics named A and B is achieved by using the expression `A\\\\|B`. Or, as a special case, you can mirror all topics using the regular expression `*`. You can also specify multiple regular expressions separated by commas.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"replicas\",\n \"consumer\",\n \"producer\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka Mirror Maker\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka Mirror Maker", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaMirrorMaker2.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaMirrorMaker2.json new file mode 100644 index 00000000000..8db312d7697 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaMirrorMaker2.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaMirrorMaker2", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the Kafka MirrorMaker 2 cluster.\",\n \"properties\": {\n \"clientRackInitImage\": {\n \"description\": \"The image of the init container used for initializing the `client.rack`.\",\n \"type\": \"string\"\n },\n \"clusters\": {\n \"description\": \"Kafka clusters for mirroring.\",\n \"items\": {\n \"properties\": {\n \"alias\": {\n \"description\": \"Alias used to reference the Kafka cluster.\",\n \"pattern\": \"^[a-zA-Z0-9\\\\._\\\\-]{1,100}$\",\n \"type\": \"string\"\n },\n \"authentication\": {\n \"description\": \"Authentication configuration for connecting to the cluster.\",\n \"properties\": {\n \"accessToken\": {\n \"description\": \"Link to Kubernetes Secret containing the access token which was obtained from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"accessTokenIsJwt\": {\n \"description\": \"Configure whether access token should be treated as JWT. This should be set to `false` if the authorization server returns opaque tokens. Defaults to `true`.\",\n \"type\": \"boolean\"\n },\n \"accessTokenLocation\": {\n \"description\": \"Path to the token file containing an access token to be used for authentication.\",\n \"type\": \"string\"\n },\n \"audience\": {\n \"description\": \"OAuth audience to use when authenticating against the authorization server. Some authorization servers require the audience to be explicitly set. The possible values depend on how the authorization server is configured. By default, `audience` is not specified when performing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"certificateAndKey\": {\n \"description\": \"Reference to the `Secret` which holds the certificate and private key pair.\",\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the Secret.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"The name of the private key in the Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"certificate\",\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertion\": {\n \"description\": \"Link to Kubernetes secret containing the client assertion which was manually configured for the client.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"clientAssertionLocation\": {\n \"description\": \"Path to the file containing the client assertion to be used for authentication.\",\n \"type\": \"string\"\n },\n \"clientAssertionType\": {\n \"description\": \"The client assertion type. If not set, and either `clientAssertion` or `clientAssertionLocation` is configured, this value defaults to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.\",\n \"type\": \"string\"\n },\n \"clientId\": {\n \"description\": \"OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"Link to Kubernetes Secret containing the OAuth client secret which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"connectTimeoutSeconds\": {\n \"description\": \"The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"disableTlsHostnameVerification\": {\n \"description\": \"Enable or disable TLS hostname verification. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"enableMetrics\": {\n \"description\": \"Enable or disable OAuth metrics. Default value is `false`.\",\n \"type\": \"boolean\"\n },\n \"httpRetries\": {\n \"description\": \"The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.\",\n \"type\": \"integer\"\n },\n \"httpRetryPauseMs\": {\n \"description\": \"The pause to take before retrying a failed HTTP request. If not set, the default is to not pause at all but to immediately repeat a request.\",\n \"type\": \"integer\"\n },\n \"includeAcceptHeader\": {\n \"description\": \"Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.\",\n \"type\": \"boolean\"\n },\n \"maxTokenExpirySeconds\": {\n \"description\": \"Set or limit time-to-live of the access tokens to the specified number of seconds. This should be set if the authorization server returns opaque tokens.\",\n \"type\": \"integer\"\n },\n \"passwordSecret\": {\n \"description\": \"Reference to the `Secret` which holds the password.\",\n \"properties\": {\n \"password\": {\n \"description\": \"The name of the key in the Secret under which the password is stored.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the password.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"password\"\n ],\n \"type\": \"object\"\n },\n \"readTimeoutSeconds\": {\n \"description\": \"The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.\",\n \"type\": \"integer\"\n },\n \"refreshToken\": {\n \"description\": \"Link to Kubernetes Secret containing the refresh token which can be used to obtain access token from the authorization server.\",\n \"properties\": {\n \"key\": {\n \"description\": \"The key under which the secret value is stored in the Kubernetes Secret.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Kubernetes Secret containing the secret value.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"saslExtensions\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"SASL extensions parameters.\",\n \"type\": \"object\"\n },\n \"scope\": {\n \"description\": \"OAuth scope to use when authenticating against the authorization server. Some authorization servers require this to be set. The possible values depend on how authorization server is configured. By default `scope` is not specified when doing the token endpoint request.\",\n \"type\": \"string\"\n },\n \"tlsTrustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection to the OAuth server.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tokenEndpointUri\": {\n \"description\": \"Authorization server token endpoint URI.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Authentication type. Currently the supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, and 'oauth'. `scram-sha-256` and `scram-sha-512` types use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 Authentication, respectively. `plain` type uses SASL PLAIN Authentication. `oauth` type uses SASL OAUTHBEARER Authentication. The `tls` type uses TLS Client Authentication. The `tls` type is supported only over TLS connections.\",\n \"enum\": [\n \"tls\",\n \"scram-sha-256\",\n \"scram-sha-512\",\n \"plain\",\n \"oauth\"\n ],\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username used for the authentication.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"bootstrapServers\": {\n \"description\": \"A comma-separated list of `host:port` pairs for establishing the connection to the Kafka cluster.\",\n \"type\": \"string\"\n },\n \"config\": {\n \"description\": \"The MirrorMaker 2 cluster config. Properties with the following prefixes cannot be set: ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"tls\": {\n \"description\": \"TLS configuration for connecting MirrorMaker 2 connectors to a cluster.\",\n \"properties\": {\n \"trustedCertificates\": {\n \"description\": \"Trusted certificates for TLS connection.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\"\n ]\n },\n {\n \"properties\": {\n \"pattern\": {}\n },\n \"required\": [\n \"pattern\"\n ]\n }\n ],\n \"properties\": {\n \"certificate\": {\n \"description\": \"The name of the file certificate in the secret.\",\n \"type\": \"string\"\n },\n \"pattern\": {\n \"description\": \"Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.\",\n \"type\": \"string\"\n },\n \"secretName\": {\n \"description\": \"The name of the Secret containing the certificate.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"alias\",\n \"bootstrapServers\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"connectCluster\": {\n \"description\": \"The cluster alias used for Kafka Connect. The value must match the alias of the *target* Kafka cluster as specified in the `spec.clusters` configuration. The target Kafka cluster is used by the underlying Kafka Connect framework for its internal topics.\",\n \"type\": \"string\"\n },\n \"externalConfiguration\": {\n \"description\": \"Pass data from Secrets or ConfigMaps to the Kafka Connect pods and use them to configure connectors.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Makes data from a Secret or ConfigMap available in the Kafka Connect pods as environment variables.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the environment variable which will be passed to the Kafka Connect pods. The name of the environment variable cannot start with `KAFKA_` or `STRIMZI_`.\",\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"Value of the environment variable which will be passed to the Kafka Connect pods. It can be passed either as a reference to Secret or ConfigMap field. The field has to specify exactly one Secret or ConfigMap.\",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to a key in a ConfigMap.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"description\": \"Reference to a key in a Secret.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Makes data from a Secret or ConfigMap available in the Kafka Connect pods as volumes.\",\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"description\": \"Reference to a key in a ConfigMap. Exactly one Secret or ConfigMap has to be specified.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name of the volume which will be added to the Kafka Connect pods.\",\n \"type\": \"string\"\n },\n \"secret\": {\n \"description\": \"Reference to a key in a Secret. Exactly one Secret or ConfigMap has to be specified.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"image\": {\n \"description\": \"The container image used for Kafka Connect pods. If no image name is explicitly specified, it is determined based on the `spec.version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration.\",\n \"type\": \"string\"\n },\n \"jmxOptions\": {\n \"description\": \"JMX Options.\",\n \"properties\": {\n \"authentication\": {\n \"description\": \"Authentication configuration for connecting to the JMX port.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Authentication type. Currently the only supported types are `password`.`password` type creates a username and protected port with no TLS.\",\n \"enum\": [\n \"password\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"jvmOptions\": {\n \"description\": \"JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"description\": \"Pod liveness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"logging\": {\n \"description\": \"Logging configuration for Kafka Connect.\",\n \"properties\": {\n \"loggers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A Map from logger name to logger level.\",\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Logging type, must be either 'inline' or 'external'.\",\n \"enum\": [\n \"inline\",\n \"external\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"`ConfigMap` entry where the logging configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"metricsConfig\": {\n \"description\": \"Metrics configuration.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Metrics type. Only 'jmxPrometheusExporter' supported currently.\",\n \"enum\": [\n \"jmxPrometheusExporter\"\n ],\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"description\": \"ConfigMap entry where the Prometheus JMX Exporter configuration is stored. \",\n \"properties\": {\n \"configMapKeyRef\": {\n \"description\": \"Reference to the key in the ConfigMap containing the configuration.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"type\",\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"mirrors\": {\n \"description\": \"Configuration of the MirrorMaker 2 connectors.\",\n \"items\": {\n \"properties\": {\n \"checkpointConnector\": {\n \"description\": \"The specification of the Kafka MirrorMaker 2 checkpoint connector.\",\n \"properties\": {\n \"autoRestart\": {\n \"description\": \"Automatic restart of connector and tasks configuration.\",\n \"properties\": {\n \"enabled\": {\n \"description\": \"Whether automatic restart for failed connectors and tasks should be enabled or disabled.\",\n \"type\": \"boolean\"\n },\n \"maxRestarts\": {\n \"description\": \"The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"config\": {\n \"description\": \"The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"pause\": {\n \"description\": \"Whether the connector should be paused. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"state\": {\n \"description\": \"The state the connector should be in. Defaults to running.\",\n \"enum\": [\n \"paused\",\n \"stopped\",\n \"running\"\n ],\n \"type\": \"string\"\n },\n \"tasksMax\": {\n \"description\": \"The maximum number of tasks for the Kafka Connector.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"groupsBlacklistPattern\": {\n \"description\": \"A regular expression matching the consumer groups to exclude from mirroring. Comma-separated lists are also supported.\",\n \"type\": \"string\"\n },\n \"groupsExcludePattern\": {\n \"description\": \"A regular expression matching the consumer groups to exclude from mirroring. Comma-separated lists are also supported.\",\n \"type\": \"string\"\n },\n \"groupsPattern\": {\n \"description\": \"A regular expression matching the consumer groups to be mirrored. Comma-separated lists are also supported.\",\n \"type\": \"string\"\n },\n \"heartbeatConnector\": {\n \"description\": \"The specification of the Kafka MirrorMaker 2 heartbeat connector.\",\n \"properties\": {\n \"autoRestart\": {\n \"description\": \"Automatic restart of connector and tasks configuration.\",\n \"properties\": {\n \"enabled\": {\n \"description\": \"Whether automatic restart for failed connectors and tasks should be enabled or disabled.\",\n \"type\": \"boolean\"\n },\n \"maxRestarts\": {\n \"description\": \"The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"config\": {\n \"description\": \"The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"pause\": {\n \"description\": \"Whether the connector should be paused. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"state\": {\n \"description\": \"The state the connector should be in. Defaults to running.\",\n \"enum\": [\n \"paused\",\n \"stopped\",\n \"running\"\n ],\n \"type\": \"string\"\n },\n \"tasksMax\": {\n \"description\": \"The maximum number of tasks for the Kafka Connector.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"sourceCluster\": {\n \"description\": \"The alias of the source cluster used by the Kafka MirrorMaker 2 connectors. The alias must match a cluster in the list at `spec.clusters`.\",\n \"type\": \"string\"\n },\n \"sourceConnector\": {\n \"description\": \"The specification of the Kafka MirrorMaker 2 source connector.\",\n \"properties\": {\n \"autoRestart\": {\n \"description\": \"Automatic restart of connector and tasks configuration.\",\n \"properties\": {\n \"enabled\": {\n \"description\": \"Whether automatic restart for failed connectors and tasks should be enabled or disabled.\",\n \"type\": \"boolean\"\n },\n \"maxRestarts\": {\n \"description\": \"The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"config\": {\n \"description\": \"The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"pause\": {\n \"description\": \"Whether the connector should be paused. Defaults to false.\",\n \"type\": \"boolean\"\n },\n \"state\": {\n \"description\": \"The state the connector should be in. Defaults to running.\",\n \"enum\": [\n \"paused\",\n \"stopped\",\n \"running\"\n ],\n \"type\": \"string\"\n },\n \"tasksMax\": {\n \"description\": \"The maximum number of tasks for the Kafka Connector.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"targetCluster\": {\n \"description\": \"The alias of the target cluster used by the Kafka MirrorMaker 2 connectors. The alias must match a cluster in the list at `spec.clusters`.\",\n \"type\": \"string\"\n },\n \"topicsBlacklistPattern\": {\n \"description\": \"A regular expression matching the topics to exclude from mirroring. Comma-separated lists are also supported.\",\n \"type\": \"string\"\n },\n \"topicsExcludePattern\": {\n \"description\": \"A regular expression matching the topics to exclude from mirroring. Comma-separated lists are also supported.\",\n \"type\": \"string\"\n },\n \"topicsPattern\": {\n \"description\": \"A regular expression matching the topics to be mirrored, for example, \\\"topic1\\\\|topic2\\\\|topic3\\\". Comma-separated lists are also supported.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"sourceCluster\",\n \"targetCluster\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"rack\": {\n \"description\": \"Configuration of the node label which will be used as the `client.rack` consumer configuration.\",\n \"properties\": {\n \"topologyKey\": {\n \"description\": \"A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2.\",\n \"example\": \"topology.kubernetes.io/zone\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"readinessProbe\": {\n \"description\": \"Pod readiness checking.\",\n \"properties\": {\n \"failureThreshold\": {\n \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"initialDelaySeconds\": {\n \"description\": \"The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"description\": \"The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"The number of pods in the Kafka Connect group. Defaults to `3`.\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"The maximum limits for CPU and memory resources and the requested initial resources.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template for Kafka Connect and Kafka MirrorMaker 2 resources. The template allows users to specify how the `Pods`, `Service`, and other services are generated.\",\n \"properties\": {\n \"apiService\": {\n \"description\": \"Template for Kafka Connect API `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"buildConfig\": {\n \"description\": \"Template for the Kafka Connect BuildConfig used to build new container images. The BuildConfig is used only on OpenShift.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pullSecret\": {\n \"description\": \"Container Registry Secret with the credentials for pulling the base image.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"buildContainer\": {\n \"description\": \"Template for the Kafka Connect Build container. The build container is used only on Kubernetes.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"buildPod\": {\n \"description\": \"Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"buildServiceAccount\": {\n \"description\": \"Template for the Kafka Connect Build service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"clusterRoleBinding\": {\n \"description\": \"Template for the Kafka Connect ClusterRoleBinding.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"connectContainer\": {\n \"description\": \"Template for the Kafka Connect container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"deployment\": {\n \"description\": \"Template for Kafka Connect `Deployment`.\",\n \"properties\": {\n \"deploymentStrategy\": {\n \"description\": \"Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.\",\n \"enum\": [\n \"RollingUpdate\",\n \"Recreate\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"headlessService\": {\n \"description\": \"Template for Kafka Connect headless `Service`.\",\n \"properties\": {\n \"ipFamilies\": {\n \"description\": \"Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.\",\n \"items\": {\n \"enum\": [\n \"IPv4\",\n \"IPv6\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ipFamilyPolicy\": {\n \"description\": \"Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.\",\n \"enum\": [\n \"SingleStack\",\n \"PreferDualStack\",\n \"RequireDualStack\"\n ],\n \"type\": \"string\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"initContainer\": {\n \"description\": \"Template for the Kafka init container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"jmxSecret\": {\n \"description\": \"Template for Secret of the Kafka Connect Cluster JMX authentication.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Kafka Connect `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podDisruptionBudget\": {\n \"description\": \"Template for Kafka Connect `PodDisruptionBudget`.\",\n \"properties\": {\n \"maxUnavailable\": {\n \"description\": \"Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"metadata\": {\n \"description\": \"Metadata to apply to the `PodDisruptionBudgetTemplate` resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podSet\": {\n \"description\": \"Template for Kafka Connect `StrimziPodSet` resource.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"description\": \"Template for the Kafka Connect service account.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tracing\": {\n \"description\": \"The configuration of tracing in Kafka Connect.\",\n \"properties\": {\n \"type\": {\n \"description\": \"Type of the tracing used. Currently the only supported type is `opentelemetry` for OpenTelemetry tracing. As of Strimzi 0.37.0, `jaeger` type is not supported anymore and this option is ignored.\",\n \"enum\": [\n \"jaeger\",\n \"opentelemetry\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"The Kafka Connect version. Defaults to the latest version. Consult the user documentation to understand the process required to upgrade or downgrade the version.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"connectCluster\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka Mirror Maker2\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka Mirror Maker2", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaNodePool.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaNodePool.json new file mode 100644 index 00000000000..78036ee8648 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaNodePool.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaNodePool", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the KafkaNodePool.\",\n \"properties\": {\n \"jvmOptions\": {\n \"description\": \"JVM Options for pods.\",\n \"properties\": {\n \"-XX\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A map of -XX options to the JVM.\",\n \"type\": \"object\"\n },\n \"-Xms\": {\n \"description\": \"-Xms option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"-Xmx\": {\n \"description\": \"-Xmx option to to the JVM.\",\n \"pattern\": \"^[0-9]+[mMgG]?$\",\n \"type\": \"string\"\n },\n \"gcLoggingEnabled\": {\n \"description\": \"Specifies whether the Garbage Collection logging is enabled. The default is false.\",\n \"type\": \"boolean\"\n },\n \"javaSystemProperties\": {\n \"description\": \"A map of additional system properties which will be passed using the `-D` option to the JVM.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The system property name.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The system property value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"description\": \"The number of pods in the pool.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"CPU and memory resources to reserve.\",\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"roles\": {\n \"description\": \"The roles that the nodes in this pool will have when KRaft mode is enabled. Supported values are 'broker' and 'controller'. This field is required. When KRaft mode is disabled, the only allowed value if `broker`.\",\n \"items\": {\n \"enum\": [\n \"controller\",\n \"broker\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"storage\": {\n \"description\": \"Storage configuration (disk). Cannot be updated.\",\n \"properties\": {\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation.\",\n \"type\": \"string\"\n },\n \"deleteClaim\": {\n \"description\": \"Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed.\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"kraftMetadata\": {\n \"description\": \"Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set.\",\n \"enum\": [\n \"shared\"\n ],\n \"type\": \"string\"\n },\n \"overrides\": {\n \"description\": \"Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.\",\n \"items\": {\n \"properties\": {\n \"broker\": {\n \"description\": \"Id of the kafka broker (broker identifier).\",\n \"type\": \"integer\"\n },\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation for this broker.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume.\",\n \"type\": \"object\"\n },\n \"size\": {\n \"description\": \"When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`.\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"description\": \"When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi).\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Storage type, must be either 'ephemeral', 'persistent-claim', or 'jbod'.\",\n \"enum\": [\n \"ephemeral\",\n \"persistent-claim\",\n \"jbod\"\n ],\n \"type\": \"string\"\n },\n \"volumes\": {\n \"description\": \"List of volumes as Storage objects representing the JBOD disks array.\",\n \"items\": {\n \"properties\": {\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation.\",\n \"type\": \"string\"\n },\n \"deleteClaim\": {\n \"description\": \"Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed.\",\n \"type\": \"boolean\"\n },\n \"id\": {\n \"description\": \"Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"kraftMetadata\": {\n \"description\": \"Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set.\",\n \"enum\": [\n \"shared\"\n ],\n \"type\": \"string\"\n },\n \"overrides\": {\n \"description\": \"Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.\",\n \"items\": {\n \"properties\": {\n \"broker\": {\n \"description\": \"Id of the kafka broker (broker identifier).\",\n \"type\": \"integer\"\n },\n \"class\": {\n \"description\": \"The storage class to use for dynamic volume allocation for this broker.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume.\",\n \"type\": \"object\"\n },\n \"size\": {\n \"description\": \"When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`.\",\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"description\": \"When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi).\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Storage type, must be either 'ephemeral' or 'persistent-claim'.\",\n \"enum\": [\n \"ephemeral\",\n \"persistent-claim\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template for pool resources. The template allows users to specify how the resources belonging to this pool are generated.\",\n \"properties\": {\n \"initContainer\": {\n \"description\": \"Template for the Kafka init container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"kafkaContainer\": {\n \"description\": \"Template for the Kafka broker container.\",\n \"properties\": {\n \"env\": {\n \"description\": \"Environment variables which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"description\": \"The environment variable key.\",\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"The environment variable value.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"Security context for the container.\",\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"description\": \"Additional volume mounts which should be applied to the container.\",\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"recursiveReadOnly\": {\n \"type\": \"string\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"perPodIngress\": {\n \"description\": \"Template for Kafka per-pod `Ingress` used for access from outside of Kubernetes.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"perPodRoute\": {\n \"description\": \"Template for Kafka per-pod `Routes` used for access from outside of OpenShift.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"perPodService\": {\n \"description\": \"Template for Kafka per-pod `Services` used for access from outside of Kubernetes.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"Template for all Kafka `PersistentVolumeClaims`.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pod\": {\n \"description\": \"Template for Kafka `Pods`.\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"The pod's affinity rules.\",\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"enableServiceLinks\": {\n \"description\": \"Indicates whether information about services should be injected into Pod's environment variables.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.\",\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"imagePullSecrets\": {\n \"description\": \"List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.\",\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"The name of the priority class used to assign priority to the pods. \",\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"description\": \"The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.\",\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"description\": \"Configures pod-level security attributes and common container settings.\",\n \"properties\": {\n \"appArmorProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"fsGroup\": {\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"description\": \"The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"tmpDirSizeLimit\": {\n \"description\": \"Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.\",\n \"pattern\": \"^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\",\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"description\": \"The pod's tolerations.\",\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"description\": \"The pod's topology spread constraints.\",\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"maxSkew\": {\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"description\": \"Additional volumes that can be mounted to the pod.\",\n \"items\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"configMap\": {},\n \"emptyDir\": {},\n \"persistentVolumeClaim\": {},\n \"secret\": {}\n },\n \"required\": []\n }\n ],\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap to use to populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDir to use to populate the volume.\",\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"properties\": {\n \"amount\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"Name to use for the volume. Required.\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaim\": {\n \"description\": \"PersistentVolumeClaim object to use to populate the volume.\",\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"description\": \"Secret to use populate the volume.\",\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podSet\": {\n \"description\": \"Template for Kafka `StrimziPodSet` resource.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"replicas\",\n \"storage\",\n \"roles\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka Node Pool\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka Node Pool", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaRebalance.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaRebalance.json new file mode 100644 index 00000000000..7815fb24310 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaRebalance.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaRebalance", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the Kafka rebalance.\",\n \"properties\": {\n \"brokers\": {\n \"description\": \"The list of newly added brokers in case of scaling up or the ones to be removed in case of scaling down to use for rebalancing. This list can be used only with rebalancing mode `add-brokers` and `removed-brokers`. It is ignored with `full` mode.\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"concurrentIntraBrokerPartitionMovements\": {\n \"description\": \"The upper bound of ongoing partition replica movements between disks within each broker. Default is 2.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"concurrentLeaderMovements\": {\n \"description\": \"The upper bound of ongoing partition leadership movements. Default is 1000.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"concurrentPartitionMovementsPerBroker\": {\n \"description\": \"The upper bound of ongoing partition replica movements going into/out of each broker. Default is 5.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"excludedTopics\": {\n \"description\": \"A regular expression where any matching topics will be excluded from the calculation of optimization proposals. This expression will be parsed by the java.util.regex.Pattern class; for more information on the supported format consult the documentation for that class.\",\n \"type\": \"string\"\n },\n \"goals\": {\n \"description\": \"A list of goals, ordered by decreasing priority, to use for generating and executing the rebalance proposal. The supported goals are available at https://github.com/linkedin/cruise-control#goals. If an empty goals list is provided, the goals declared in the default.goals Cruise Control configuration parameter are used.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"mode\": {\n \"description\": \"Mode to run the rebalancing. The supported modes are `full`, `add-brokers`, `remove-brokers`.\\nIf not specified, the `full` mode is used by default. \\n\\n* `full` mode runs the rebalancing across all the brokers in the cluster.\\n* `add-brokers` mode can be used after scaling up the cluster to move some replicas to the newly added brokers.\\n* `remove-brokers` mode can be used before scaling down the cluster to move replicas out of the brokers to be removed.\\n\",\n \"enum\": [\n \"full\",\n \"add-brokers\",\n \"remove-brokers\"\n ],\n \"type\": \"string\"\n },\n \"rebalanceDisk\": {\n \"description\": \"Enables intra-broker disk balancing, which balances disk space utilization between disks on the same broker. Only applies to Kafka deployments that use JBOD storage with multiple disks. When enabled, inter-broker balancing is disabled. Default is false.\",\n \"type\": \"boolean\"\n },\n \"replicaMovementStrategies\": {\n \"description\": \"A list of strategy class names used to determine the execution order for the replica movements in the generated optimization proposal. By default BaseReplicaMovementStrategy is used, which will execute the replica movements in the order that they were generated.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"replicationThrottle\": {\n \"description\": \"The upper bound, in bytes per second, on the bandwidth used to move replicas. There is no limit by default.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"skipHardGoalCheck\": {\n \"description\": \"Whether to allow the hard goals specified in the Kafka CR to be skipped in optimization proposal generation. This can be useful when some of those hard goals are preventing a balance solution being found. Default is false.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka Rebalance\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka Rebalance", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaTopic.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaTopic.json new file mode 100644 index 00000000000..707a942d313 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaTopic.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaTopic", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the topic.\",\n \"properties\": {\n \"config\": {\n \"description\": \"The topic configuration.\",\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"partitions\": {\n \"description\": \"The number of partitions the topic should have. This cannot be decreased after topic creation. It can be increased after topic creation, but it is important to understand the consequences that has, especially for topics with semantic partitioning. When absent this will default to the broker configuration for `num.partitions`.\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"replicas\": {\n \"description\": \"The number of replicas the topic should have. When absent this will default to the broker configuration for `default.replication.factor`.\",\n \"maximum\": 32767,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"topicName\": {\n \"description\": \"The name of the topic. When absent this will default to the metadata.name of the topic. It is recommended to not set this unless the topic name is not a valid Kubernetes resource name.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka Topic\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka Topic", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaUser.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaUser.json new file mode 100644 index 00000000000..19d58071674 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/KafkaUser.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "KafkaUser", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the user.\",\n \"properties\": {\n \"authentication\": {\n \"description\": \"Authentication mechanism enabled for this Kafka user. The supported authentication mechanisms are `scram-sha-512`, `tls`, and `tls-external`. \\n\\n* `scram-sha-512` generates a secret with SASL SCRAM-SHA-512 credentials.\\n* `tls` generates a secret with user certificate for mutual TLS authentication.\\n* `tls-external` does not generate a user certificate. But prepares the user for using mutual TLS authentication using a user certificate generated outside the User Operator.\\n ACLs and quotas set for this user are configured in the `CN=\\u003cusername\\u003e` format.\\n\\nAuthentication is optional. If authentication is not configured, no credentials are generated. ACLs and quotas set for the user are configured in the `\\u003cusername\\u003e` format suitable for SASL authentication.\",\n \"properties\": {\n \"password\": {\n \"description\": \"Specify the password for the user. If not set, a new password is generated by the User Operator.\",\n \"properties\": {\n \"valueFrom\": {\n \"description\": \"Secret from which the password should be read.\",\n \"properties\": {\n \"secretKeyRef\": {\n \"description\": \"Selects a key of a Secret in the resource's namespace.\",\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"valueFrom\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"Authentication type.\",\n \"enum\": [\n \"tls\",\n \"tls-external\",\n \"scram-sha-512\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"authorization\": {\n \"description\": \"Authorization rules for this Kafka user.\",\n \"properties\": {\n \"acls\": {\n \"description\": \"List of ACL rules which should be applied to this user.\",\n \"items\": {\n \"properties\": {\n \"host\": {\n \"description\": \"The host from which the action described in the ACL rule is allowed or denied. If not set, it defaults to `*`, allowing or denying the action from any host.\",\n \"type\": \"string\"\n },\n \"operation\": {\n \"description\": \"Operation which will be allowed or denied. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All.\",\n \"enum\": [\n \"Read\",\n \"Write\",\n \"Create\",\n \"Delete\",\n \"Alter\",\n \"Describe\",\n \"ClusterAction\",\n \"AlterConfigs\",\n \"DescribeConfigs\",\n \"IdempotentWrite\",\n \"All\"\n ],\n \"type\": \"string\"\n },\n \"operations\": {\n \"description\": \"List of operations to allow or deny. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All. Only certain operations work with the specified resource.\",\n \"items\": {\n \"enum\": [\n \"Read\",\n \"Write\",\n \"Create\",\n \"Delete\",\n \"Alter\",\n \"Describe\",\n \"ClusterAction\",\n \"AlterConfigs\",\n \"DescribeConfigs\",\n \"IdempotentWrite\",\n \"All\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"resource\": {\n \"description\": \"Indicates the resource for which given ACL rule applies.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of resource for which given ACL rule applies. Can be combined with `patternType` field to use prefix pattern.\",\n \"type\": \"string\"\n },\n \"patternType\": {\n \"description\": \"Describes the pattern used in the resource field. The supported types are `literal` and `prefix`. With `literal` pattern type, the resource field will be used as a definition of a full name. With `prefix` pattern type, the resource name will be used only as a prefix. Default value is `literal`.\",\n \"enum\": [\n \"literal\",\n \"prefix\"\n ],\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Resource type. The available resource types are `topic`, `group`, `cluster`, and `transactionalId`.\",\n \"enum\": [\n \"topic\",\n \"group\",\n \"cluster\",\n \"transactionalId\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": {\n \"description\": \"The type of the rule. Currently the only supported type is `allow`. ACL rules with type `allow` are used to allow user to execute the specified operations. Default value is `allow`.\",\n \"enum\": [\n \"allow\",\n \"deny\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"type\": {\n \"description\": \"Authorization type. Currently the only supported type is `simple`. `simple` authorization type uses the Kafka Admin API for managing the ACL rules.\",\n \"enum\": [\n \"simple\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"acls\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"quotas\": {\n \"description\": \"Quotas on requests to control the broker resources used by clients. Network bandwidth and request rate quotas can be enforced.Kafka documentation for Kafka User quotas can be found at http://kafka.apache.org/documentation/#design_quotas.\",\n \"properties\": {\n \"consumerByteRate\": {\n \"description\": \"A quota on the maximum bytes per-second that each client group can fetch from a broker before the clients in the group are throttled. Defined on a per-broker basis.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"controllerMutationRate\": {\n \"description\": \"A quota on the rate at which mutations are accepted for the create topics request, the create partitions request and the delete topics request. The rate is accumulated by the number of partitions created or deleted.\",\n \"minimum\": 0,\n \"type\": \"number\"\n },\n \"producerByteRate\": {\n \"description\": \"A quota on the maximum bytes per-second that each client group can publish to a broker before the clients in the group are throttled. Defined on a per-broker basis.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"requestPercentage\": {\n \"description\": \"A quota on the maximum CPU utilization of each client group as a percentage of network and I/O threads.\",\n \"minimum\": 0,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"template\": {\n \"description\": \"Template to specify how Kafka User `Secrets` are generated.\",\n \"properties\": {\n \"secret\": {\n \"description\": \"Template for KafkaUser resources. The template allows users to specify how the `Secret` with password or TLS certificates is generated.\",\n \"properties\": {\n \"metadata\": {\n \"description\": \"Metadata applied to the resource.\",\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations added to the Kubernetes resource.\",\n \"type\": \"object\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels added to the Kubernetes resource.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Kafka User\",\n \"type\": \"object\"\n}", + "version": "kafka.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Kafka User", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/StrimziPodSet.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/StrimziPodSet.json new file mode 100644 index 00000000000..82ef1cb4c95 --- /dev/null +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/components/StrimziPodSet.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "StrimziPodSet", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"description\": \"The specification of the StrimziPodSet.\",\n \"properties\": {\n \"pods\": {\n \"description\": \"The Pods managed by this StrimziPodSet.\",\n \"items\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Selector is a label query which matches all the pods managed by this `StrimziPodSet`. Only `matchLabels` is supported. If `matchExpressions` is set, it will be ignored.\",\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"selector\",\n \"pods\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Strimzi Pod Set\",\n \"type\": \"object\"\n}", + "version": "core.strimzi.io/v1beta2" + }, + "configuration": null, + "description": "", + "displayName": "Strimzi Pod Set", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds" + }, + "model": { + "category": { + "name": "App Definition and Development" + }, + "displayName": "Strimzi Kafka Operator", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "source_uri": "git://github.com/strimzi/strimzi-kafka-operator/main/helm-charts/helm3/strimzi-kafka-operator/crds", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "0.43.0-rc1" + }, + "name": "strimzi-kafka-operator", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Streaming \u0026 Messaging", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#192c47", + "secondaryColor": "#5E718C\n", + "shape": "circle", + "svgColor": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cdefs\u003e\u003clinearGradient id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#fff\"/\u003e\u003cstop offset=\"1\" stop-color=\"#54bad8\"/\u003e\u003c/linearGradient\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"/\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"/\u003e\u003c/g\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\"\u003e\u003cpath fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/model.json b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/model.json index ad35de63c80..5d24b490f84 100644 --- a/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/model.json +++ b/server/meshmodel/strimzi-kafka-operator/0.43.0-rc1/v1.0.0/model.json @@ -6,14 +6,11 @@ "id": "00000000-0000-0000-0000-000000000000", "metadata": { "capabilities": null, - "defaultData": "", "isAnnotation": false, "primaryColor": "#192c47", "secondaryColor": "#5E718C\n", "shape": "circle", - "shapePolygonPoints": "", "styleOverrides": "", - "styles": "", "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"b\" x1=\"-202.908\" x2=\"-202.212\" y1=\"-1.633\" y2=\"-1.633\" gradientTransform=\"rotate(64.94 -61021.575 94340.097) scale(594.10366)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#fff\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#54bad8\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003cclipPath xmlns=\"http://www.w3.org/2000/svg\" id=\"a\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#192c47\" d=\"M180.33827 4.32553L45.59879 82.11689v155.58548L180.33827 315.493l134.74018-77.79136V82.11689z\"\u003e\u003c/path\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" clip-path=\"url(#a)\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"url(#b)\" d=\"M183.91572 115.62933c-5.54817 7.11267-70.98378 22.98967-123.25192 46.53995v66.835l119.67377 69.09356 119.67379-69.09356v-13.88295a725.85637 725.85637 0 0 0-75.80815-10.22219c-105.26657-9.09661-7.79661-29.89085 36.3892-67.17C304.7791 100.44916 113.73735 89.235 113.73735 89.235s77.97583 16.39764 70.17832 26.39429\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e", "svgComplete": "", "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" viewBox=\"39.28 -1.97 281.94 323.44\" height=\"20\" width=\"20\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" d=\"M180.33826 4.32553L45.59882 82.11691v155.58545L180.33826 315.493l134.74017-77.79132V82.11691zm119.67309 224.67871l-119.67376 69.09357-119.67377-69.09357v-66.835C112.932 138.619 178.36755 122.742 183.91571 115.6293l-.00006-.00006c7.79755-9.99664-70.17828-26.39424-70.17828-26.39424s191.04174 11.21418 146.855 48.49421c-44.18579 37.27911-141.65576 58.07336-36.38922 67.17a725.85543 725.85543 0 0 1 75.80816 10.22217z\"\u003e\u003c/path\u003e\u003c/svg\u003e" @@ -27,8 +24,8 @@ "credential_id": "00000000-0000-0000-0000-000000000000", "deleted_at": "0001-01-01T00:00:00Z", "id": "00000000-0000-0000-0000-000000000000", - "kind": "artifacthub", - "name": "Artifact Hub", + "kind": "github", + "name": "Github", "status": "discovered", "sub_type": "", "type": "registry", diff --git a/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/Broker.json b/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/Broker.json new file mode 100644 index 00000000000..f872a08d653 --- /dev/null +++ b/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/Broker.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Broker", + "schema": "{\n \"description\": \"Broker is the Schema for the brokers API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"BrokerSpec defines the desired state of Broker.\",\n \"properties\": {\n \"components\": {\n \"description\": \"List of the components to be installed - any of [service-discovery, connectivity].\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"defaultCustomDomains\": {\n \"description\": \"List of domains to use for multi-cluster service discovery.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"defaultGlobalnetClusterSize\": {\n \"description\": \"Default cluster size for GlobalCIDR allocated to each cluster (amount of global IPs).\",\n \"type\": \"integer\"\n },\n \"globalnetCIDRRange\": {\n \"description\": \"GlobalCIDR supernet range for allocating GlobalCIDRs to each cluster.\",\n \"type\": \"string\"\n },\n \"globalnetEnabled\": {\n \"description\": \"Enable support for Overlapping CIDRs in connecting clusters.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Broker\",\n \"type\": \"object\"\n}", + "version": "submariner.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Broker", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/submariner-io/submariner-operator/devel/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Submariner", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2bdfc4", + "secondaryColor": "#40e2ca", + "shape": "circle", + "source_uri": "git://github.com/submariner-io/submariner-operator/devel/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 300 300\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2bdfc4;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 300 300\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.19.0-m2" + }, + "name": "submariner", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Network", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2bdfc4", + "secondaryColor": "#40e2ca", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 300 300\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2bdfc4;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"/\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 300 300\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/ServiceDiscovery.json b/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/ServiceDiscovery.json new file mode 100644 index 00000000000..485dfabdc94 --- /dev/null +++ b/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/ServiceDiscovery.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "ServiceDiscovery", + "schema": "{\n \"description\": \"ServiceDiscovery is the Schema for the servicediscoveries API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ServiceDiscoverySpec defines the desired state of ServiceDiscovery.\",\n \"properties\": {\n \"brokerK8sApiServer\": {\n \"type\": \"string\"\n },\n \"brokerK8sApiServerToken\": {\n \"type\": \"string\"\n },\n \"brokerK8sCA\": {\n \"type\": \"string\"\n },\n \"brokerK8sInsecure\": {\n \"type\": \"boolean\"\n },\n \"brokerK8sRemoteNamespace\": {\n \"type\": \"string\"\n },\n \"brokerK8sSecret\": {\n \"type\": \"string\"\n },\n \"clusterID\": {\n \"type\": \"string\"\n },\n \"coreDNSCustomConfig\": {\n \"properties\": {\n \"configMapName\": {\n \"description\": \"Name of the custom CoreDNS configmap.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the custom CoreDNS configmap.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"customDomains\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"debug\": {\n \"type\": \"boolean\"\n },\n \"globalnetEnabled\": {\n \"type\": \"boolean\"\n },\n \"haltOnCertificateError\": {\n \"type\": \"boolean\"\n },\n \"imageOverrides\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"tolerations\": {\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"brokerK8sApiServer\",\n \"brokerK8sRemoteNamespace\",\n \"clusterID\",\n \"debug\",\n \"namespace\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Service Discovery\",\n \"type\": \"object\"\n}", + "version": "submariner.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Service Discovery", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/submariner-io/submariner-operator/devel/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Submariner", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2bdfc4", + "secondaryColor": "#40e2ca", + "shape": "circle", + "source_uri": "git://github.com/submariner-io/submariner-operator/devel/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 300 300\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2bdfc4;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 300 300\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.19.0-m2" + }, + "name": "submariner", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Network", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2bdfc4", + "secondaryColor": "#40e2ca", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 300 300\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2bdfc4;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"/\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 300 300\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/Submariner.json b/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/Submariner.json new file mode 100644 index 00000000000..8d142601bb6 --- /dev/null +++ b/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/components/Submariner.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Submariner", + "schema": "{\n \"description\": \"Submariner is the Schema for the submariners API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"SubmarinerSpec defines the desired state of Submariner.\",\n \"properties\": {\n \"airGappedDeployment\": {\n \"type\": \"boolean\"\n },\n \"broker\": {\n \"description\": \"Type of broker (must be \\\"k8s\\\").\",\n \"type\": \"string\"\n },\n \"brokerK8sApiServer\": {\n \"description\": \"The broker API URL.\",\n \"type\": \"string\"\n },\n \"brokerK8sApiServerToken\": {\n \"description\": \"The broker API Token.\",\n \"type\": \"string\"\n },\n \"brokerK8sCA\": {\n \"description\": \"The broker certificate authority.\",\n \"type\": \"string\"\n },\n \"brokerK8sInsecure\": {\n \"type\": \"boolean\"\n },\n \"brokerK8sRemoteNamespace\": {\n \"description\": \"The Broker namespace.\",\n \"type\": \"string\"\n },\n \"brokerK8sSecret\": {\n \"type\": \"string\"\n },\n \"cableDriver\": {\n \"description\": \"Cable driver implementation - any of [libreswan, wireguard, vxlan].\",\n \"type\": \"string\"\n },\n \"ceIPSecDebug\": {\n \"description\": \"Enable logging IPsec debugging information.\",\n \"type\": \"boolean\"\n },\n \"ceIPSecForceUDPEncaps\": {\n \"description\": \"Force UDP encapsulation for IPsec.\",\n \"type\": \"boolean\"\n },\n \"ceIPSecIKEPort\": {\n \"description\": \"The IPsec IKE port (500 usually).\",\n \"type\": \"integer\"\n },\n \"ceIPSecNATTPort\": {\n \"description\": \"The IPsec NAT traversal port (4500 usually).\",\n \"type\": \"integer\"\n },\n \"ceIPSecPSK\": {\n \"description\": \"The IPsec Pre-Shared Key which must be identical in all route agents across the cluster.\",\n \"type\": \"string\"\n },\n \"ceIPSecPSKSecret\": {\n \"type\": \"string\"\n },\n \"ceIPSecPreferredServer\": {\n \"description\": \"Enable this cluster as a preferred server for data-plane connections.\",\n \"type\": \"boolean\"\n },\n \"clusterCIDR\": {\n \"description\": \"The cluster CIDR.\",\n \"type\": \"string\"\n },\n \"clusterID\": {\n \"description\": \"The cluster ID used to identify the tunnels.\",\n \"type\": \"string\"\n },\n \"colorCodes\": {\n \"type\": \"string\"\n },\n \"connectionHealthCheck\": {\n \"description\": \"The gateway connection health check.\",\n \"properties\": {\n \"enabled\": {\n \"description\": \"Enable the connection health check.\",\n \"type\": \"boolean\"\n },\n \"intervalSeconds\": {\n \"description\": \"The interval at which health check pings are sent.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"maxPacketLossCount\": {\n \"description\": \"The maximum number of packets lost at which the health checker will mark the connection as down.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"coreDNSCustomConfig\": {\n \"description\": \"Name of the custom CoreDNS configmap to configure forwarding to Lighthouse. It should be in \\u003cnamespace\\u003e/\\u003cname\\u003e format where \\u003cnamespace\\u003e is optional and defaults to kube-system.\",\n \"properties\": {\n \"configMapName\": {\n \"description\": \"Name of the custom CoreDNS configmap.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the custom CoreDNS configmap.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"customDomains\": {\n \"description\": \"List of domains to use for multi-cluster service discovery.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"debug\": {\n \"description\": \"Enable operator debugging.\",\n \"type\": \"boolean\"\n },\n \"globalCIDR\": {\n \"description\": \"The Global CIDR super-net range for allocating GlobalCIDRs to each cluster.\",\n \"type\": \"string\"\n },\n \"haltOnCertificateError\": {\n \"description\": \"Halt on certificate error (so the pod gets restarted).\",\n \"type\": \"boolean\"\n },\n \"imageOverrides\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Override component images.\",\n \"type\": \"object\"\n },\n \"loadBalancerEnabled\": {\n \"description\": \"Enable automatic Load Balancer in front of the gateways.\",\n \"type\": \"boolean\"\n },\n \"namespace\": {\n \"description\": \"The namespace in which to deploy the submariner operator.\",\n \"type\": \"string\"\n },\n \"natEnabled\": {\n \"description\": \"Enable NAT between clusters.\",\n \"type\": \"boolean\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"repository\": {\n \"description\": \"The image repository.\",\n \"type\": \"string\"\n },\n \"serviceCIDR\": {\n \"description\": \"The service CIDR.\",\n \"type\": \"string\"\n },\n \"serviceDiscoveryEnabled\": {\n \"description\": \"Enable support for Service Discovery (Lighthouse).\",\n \"type\": \"boolean\"\n },\n \"tolerations\": {\n \"items\": {\n \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple \\u003ckey,value,effect\\u003e using the matching operator \\u003coperator\\u003e.\",\n \"properties\": {\n \"effect\": {\n \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n \"type\": \"string\"\n },\n \"key\": {\n \"description\": \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n \"type\": \"string\"\n },\n \"operator\": {\n \"description\": \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"description\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"description\": \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"version\": {\n \"description\": \"The image tag.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"broker\",\n \"brokerK8sApiServer\",\n \"brokerK8sRemoteNamespace\",\n \"ceIPSecDebug\",\n \"clusterCIDR\",\n \"clusterID\",\n \"debug\",\n \"namespace\",\n \"natEnabled\",\n \"serviceCIDR\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Submariner\",\n \"type\": \"object\"\n}", + "version": "submariner.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Submariner", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/submariner-io/submariner-operator/devel/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Submariner", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2bdfc4", + "secondaryColor": "#40e2ca", + "shape": "circle", + "source_uri": "git://github.com/submariner-io/submariner-operator/devel/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 300 300\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2bdfc4;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 300 300\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.19.0-m2" + }, + "name": "submariner", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Network", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2bdfc4", + "secondaryColor": "#40e2ca", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 300 300\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2bdfc4;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"/\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 300 300\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/model.json b/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/model.json new file mode 100644 index 00000000000..43c14db9055 --- /dev/null +++ b/server/meshmodel/submariner/v0.19.0-m2/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Runtime" + }, + "displayName": "Submariner", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#2bdfc4", + "secondaryColor": "#40e2ca", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 300 300\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2bdfc4;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 300 300\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M76.48263,103.73116v31.34008H224.93675a26.46864,26.46864,0,0,1,26.43878,26.43945v38.1769a26.46851,26.46851,0,0,1-26.4388,26.43879H4v11.92916A30.78477,30.78477,0,0,0,34.69457,268.75H263.30542A30.78478,30.78478,0,0,0,294,238.05554V103.73116Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M221.51806,196.26885V164.92871H73.06389A26.46915,26.46915,0,0,1,46.6251,138.48924V100.31248A26.469,26.469,0,0,1,73.06389,73.87369H294V61.94456A30.78479,30.78479,0,0,0,263.30542,31.25H34.69457A30.78477,30.78477,0,0,0,4,61.9445V196.26885Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.19.0-m2" + }, + "name": "submariner", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Network", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Hardware.json b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Hardware.json new file mode 100644 index 00000000000..61907a6cf11 --- /dev/null +++ b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Hardware.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Hardware", + "schema": "{\n \"description\": \"Hardware is the Schema for the Hardware API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"HardwareSpec defines the desired state of Hardware.\",\n \"properties\": {\n \"bmcRef\": {\n \"description\": \"BMCRef contains a relation to a BMC state management type in the same namespace as the Hardware. This may be used for BMC management by orchestrators.\",\n \"properties\": {\n \"apiGroup\": {\n \"description\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n \"type\": \"string\"\n },\n \"kind\": {\n \"description\": \"Kind is the type of resource being referenced\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name is the name of resource being referenced\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"disks\": {\n \"items\": {\n \"description\": \"Disk represents a disk device for Tinkerbell Hardware.\",\n \"properties\": {\n \"device\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"interfaces\": {\n \"items\": {\n \"description\": \"Interface represents a network interface configuration for Hardware.\",\n \"properties\": {\n \"dhcp\": {\n \"description\": \"DHCP configuration.\",\n \"properties\": {\n \"arch\": {\n \"type\": \"string\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"iface_name\": {\n \"type\": \"string\"\n },\n \"ip\": {\n \"description\": \"IP configuration.\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\"\n },\n \"family\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"netmask\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"lease_time\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"mac\": {\n \"pattern\": \"([0-9a-f]{2}[:]){5}([0-9a-f]{2})\",\n \"type\": \"string\"\n },\n \"name_servers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"time_servers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"uefi\": {\n \"type\": \"boolean\"\n },\n \"vlan_id\": {\n \"description\": \"validation pattern for VLANDID is a string number between 0-4096\",\n \"pattern\": \"^(([0-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))(,[1-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))*)$\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"netboot\": {\n \"description\": \"Netboot configuration.\",\n \"properties\": {\n \"allowPXE\": {\n \"type\": \"boolean\"\n },\n \"allowWorkflow\": {\n \"type\": \"boolean\"\n },\n \"ipxe\": {\n \"description\": \"IPXE configuration.\",\n \"properties\": {\n \"contents\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"osie\": {\n \"description\": \"OSIE configuration.\",\n \"properties\": {\n \"baseURL\": {\n \"type\": \"string\"\n },\n \"initrd\": {\n \"type\": \"string\"\n },\n \"kernel\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"properties\": {\n \"bonding_mode\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"custom\": {\n \"properties\": {\n \"preinstalled_operating_system_version\": {\n \"properties\": {\n \"distro\": {\n \"type\": \"string\"\n },\n \"image_tag\": {\n \"type\": \"string\"\n },\n \"os_slug\": {\n \"type\": \"string\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"private_subnets\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"facility\": {\n \"properties\": {\n \"facility_code\": {\n \"type\": \"string\"\n },\n \"plan_slug\": {\n \"type\": \"string\"\n },\n \"plan_version_slug\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"instance\": {\n \"properties\": {\n \"allow_pxe\": {\n \"type\": \"boolean\"\n },\n \"always_pxe\": {\n \"type\": \"boolean\"\n },\n \"crypted_root_password\": {\n \"type\": \"string\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"ips\": {\n \"items\": {\n \"properties\": {\n \"address\": {\n \"type\": \"string\"\n },\n \"family\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"management\": {\n \"type\": \"boolean\"\n },\n \"netmask\": {\n \"type\": \"string\"\n },\n \"public\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ipxe_script_url\": {\n \"type\": \"string\"\n },\n \"network_ready\": {\n \"type\": \"boolean\"\n },\n \"operating_system\": {\n \"properties\": {\n \"distro\": {\n \"type\": \"string\"\n },\n \"image_tag\": {\n \"type\": \"string\"\n },\n \"os_slug\": {\n \"type\": \"string\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"rescue\": {\n \"type\": \"boolean\"\n },\n \"ssh_keys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"state\": {\n \"type\": \"string\"\n },\n \"storage\": {\n \"properties\": {\n \"disks\": {\n \"items\": {\n \"properties\": {\n \"device\": {\n \"type\": \"string\"\n },\n \"partitions\": {\n \"items\": {\n \"properties\": {\n \"label\": {\n \"type\": \"string\"\n },\n \"number\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"size\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"start\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type_guid\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"wipe_table\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"filesystems\": {\n \"items\": {\n \"properties\": {\n \"mount\": {\n \"properties\": {\n \"create\": {\n \"properties\": {\n \"force\": {\n \"type\": \"boolean\"\n },\n \"options\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"device\": {\n \"type\": \"string\"\n },\n \"files\": {\n \"items\": {\n \"properties\": {\n \"contents\": {\n \"type\": \"string\"\n },\n \"gid\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"mode\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"point\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"raid\": {\n \"items\": {\n \"properties\": {\n \"devices\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"level\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"spare\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"tags\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"userdata\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"manufacturer\": {\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"slug\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"state\": {\n \"default\": \"provisioning\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"resources\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"Resources represents known resources that are available on a machine. Resources may be used for scheduling by orchestrators.\",\n \"type\": \"object\"\n },\n \"tinkVersion\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"userData\": {\n \"description\": \"UserData is the user data to configure in the hardware's metadata\",\n \"type\": \"string\"\n },\n \"vendorData\": {\n \"description\": \"VendorData is the vendor data to configure in the hardware's metadata\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Hardware\",\n \"type\": \"object\"\n}", + "version": "tinkerbell.org/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Hardware", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Tinkerbell", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.4.5" + }, + "name": "tinkerbell", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Job.json b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Job.json new file mode 100644 index 00000000000..fd85bae35bd --- /dev/null +++ b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Job.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Job", + "schema": "{\n \"description\": \"Job is the Schema for the bmcjobs API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"JobSpec defines the desired state of Job.\",\n \"properties\": {\n \"machineRef\": {\n \"description\": \"MachineRef represents the Machine resource to execute the job. All the tasks in the job are executed for the same Machine.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Machine.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace the Machine resides in.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"namespace\"\n ],\n \"type\": \"object\"\n },\n \"tasks\": {\n \"description\": \"Tasks represents a list of baseboard management actions to be executed. The tasks are executed sequentially. Controller waits for one task to complete before executing the next. If a single task fails, job execution stops and sets condition Failed. Condition Completed is set only if all the tasks were successful.\",\n \"items\": {\n \"description\": \"Action represents the action to be performed. A single task can only perform one type of action. For example either PowerAction or OneTimeBootDeviceAction.\",\n \"maxProperties\": 1,\n \"properties\": {\n \"oneTimeBootDeviceAction\": {\n \"description\": \"OneTimeBootDeviceAction represents a baseboard management one time set boot device operation.\",\n \"properties\": {\n \"device\": {\n \"description\": \"Devices represents the boot devices, in order for setting one time boot. Currently only the first device in the slice is used to set one time boot.\",\n \"items\": {\n \"description\": \"BootDevice represents boot device of the Machine.\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"efiBoot\": {\n \"description\": \"EFIBoot instructs the machine to use EFI boot.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"device\"\n ],\n \"type\": \"object\"\n },\n \"powerAction\": {\n \"description\": \"PowerAction represents a baseboard management power operation.\",\n \"enum\": [\n \"on\",\n \"off\",\n \"soft\",\n \"status\",\n \"cycle\",\n \"reset\"\n ],\n \"type\": \"string\"\n },\n \"virtualMediaAction\": {\n \"description\": \"VirtualMediaAction represents a baseboard management virtual media insert/eject.\",\n \"properties\": {\n \"kind\": {\n \"type\": \"string\"\n },\n \"mediaURL\": {\n \"description\": \"mediaURL represents the URL of the image to be inserted into the virtual media, or empty to eject media.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"machineRef\",\n \"tasks\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Job\",\n \"type\": \"object\"\n}", + "version": "bmc.tinkerbell.org/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Tinkerbell", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.4.5" + }, + "name": "tinkerbell", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Machine.json b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Machine.json new file mode 100644 index 00000000000..1c3d04cc14a --- /dev/null +++ b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Machine.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Machine", + "schema": "{\n \"description\": \"Machine is the Schema for the machines API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"MachineSpec defines desired machine state.\",\n \"properties\": {\n \"connection\": {\n \"description\": \"Connection contains connection data for a Baseboard Management Controller.\",\n \"properties\": {\n \"authSecretRef\": {\n \"description\": \"AuthSecretRef is the SecretReference that contains authentication information of the Machine. The Secret must contain username and password keys. This is optional as it is not required when using the RPC provider.\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"host\": {\n \"description\": \"Host is the host IP address or hostname of the Machine.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"insecureTLS\": {\n \"description\": \"InsecureTLS specifies trusted TLS connections.\",\n \"type\": \"boolean\"\n },\n \"port\": {\n \"default\": 623,\n \"description\": \"Port is the port number for connecting with the Machine.\",\n \"type\": \"integer\"\n },\n \"providerOptions\": {\n \"description\": \"ProviderOptions contains provider specific options.\",\n \"properties\": {\n \"intelAMT\": {\n \"description\": \"IntelAMT contains the options to customize the IntelAMT provider.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port that intelAMT will use for calls.\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"ipmitool\": {\n \"description\": \"IPMITOOL contains the options to customize the Ipmitool provider.\",\n \"properties\": {\n \"cipherSuite\": {\n \"description\": \"CipherSuite that ipmitool will use for calls.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port that ipmitool will use for calls.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"redfish\": {\n \"description\": \"Redfish contains the options to customize the Redfish provider.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port that redfish will use for calls.\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"rpc\": {\n \"description\": \"RPC contains the options to customize the RPC provider.\",\n \"properties\": {\n \"consumerURL\": {\n \"description\": \"ConsumerURL is the URL where an rpc consumer/listener is running and to which we will send and receive all notifications.\",\n \"type\": \"string\"\n },\n \"experimental\": {\n \"description\": \"Experimental options.\",\n \"properties\": {\n \"customRequestPayload\": {\n \"description\": \"CustomRequestPayload must be in json.\",\n \"type\": \"string\"\n },\n \"dotPath\": {\n \"description\": \"DotPath is the path to the json object where the bmclib RequestPayload{} struct will be embedded. For example: object.data.body\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"hmac\": {\n \"description\": \"HMAC is the options used to create a HMAC signature.\",\n \"properties\": {\n \"prefixSigDisabled\": {\n \"description\": \"PrefixSigDisabled determines whether the algorithm will be prefixed to the signature. Example: sha256=abc123\",\n \"type\": \"boolean\"\n },\n \"secrets\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"description\": \"Secrets are a map of algorithms to secrets used for signing.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"logNotificationsDisabled\": {\n \"description\": \"LogNotificationsDisabled determines whether responses from rpc consumer/listeners will be logged or not.\",\n \"type\": \"boolean\"\n },\n \"request\": {\n \"description\": \"Request is the options used to create the rpc HTTP request.\",\n \"properties\": {\n \"httpContentType\": {\n \"description\": \"HTTPContentType is the content type to use for the rpc request notification.\",\n \"type\": \"string\"\n },\n \"httpMethod\": {\n \"description\": \"HTTPMethod is the HTTP method to use for the rpc request notification.\",\n \"type\": \"string\"\n },\n \"staticHeaders\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": \"StaticHeaders are predefined headers that will be added to every request.\",\n \"type\": \"object\"\n },\n \"timestampFormat\": {\n \"description\": \"TimestampFormat is the time format for the timestamp header.\",\n \"type\": \"string\"\n },\n \"timestampHeader\": {\n \"description\": \"TimestampHeader is the header name that should contain the timestamp. Example: X-BMCLIB-Timestamp\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"signature\": {\n \"description\": \"Signature is the options used for adding an HMAC signature to an HTTP request.\",\n \"properties\": {\n \"appendAlgoToHeaderDisabled\": {\n \"description\": \"AppendAlgoToHeaderDisabled decides whether to append the algorithm to the signature header or not. Example: X-BMCLIB-Signature becomes X-BMCLIB-Signature-256 When set to true, a header will be added for each algorithm. Example: X-BMCLIB-Signature-256 and X-BMCLIB-Signature-512\",\n \"type\": \"boolean\"\n },\n \"headerName\": {\n \"description\": \"HeaderName is the header name that should contain the signature(s). Example: X-BMCLIB-Signature\",\n \"type\": \"string\"\n },\n \"includedPayloadHeaders\": {\n \"description\": \"IncludedPayloadHeaders are headers whose values will be included in the signature payload. Example: X-BMCLIB-My-Custom-Header All headers will be deduplicated.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"consumerURL\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\",\n \"insecureTLS\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"connection\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Machine\",\n \"type\": \"object\"\n}", + "version": "bmc.tinkerbell.org/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Machine", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Tinkerbell", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.4.5" + }, + "name": "tinkerbell", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Task.json b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Task.json new file mode 100644 index 00000000000..5fad900d195 --- /dev/null +++ b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Task.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Task", + "schema": "{\n \"description\": \"Task is the Schema for the Task API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"TaskSpec defines the desired state of Task.\",\n \"properties\": {\n \"connection\": {\n \"description\": \"Connection represents the Machine connectivity information.\",\n \"properties\": {\n \"authSecretRef\": {\n \"description\": \"AuthSecretRef is the SecretReference that contains authentication information of the Machine. The Secret must contain username and password keys. This is optional as it is not required when using the RPC provider.\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"host\": {\n \"description\": \"Host is the host IP address or hostname of the Machine.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"insecureTLS\": {\n \"description\": \"InsecureTLS specifies trusted TLS connections.\",\n \"type\": \"boolean\"\n },\n \"port\": {\n \"default\": 623,\n \"description\": \"Port is the port number for connecting with the Machine.\",\n \"type\": \"integer\"\n },\n \"providerOptions\": {\n \"description\": \"ProviderOptions contains provider specific options.\",\n \"properties\": {\n \"intelAMT\": {\n \"description\": \"IntelAMT contains the options to customize the IntelAMT provider.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port that intelAMT will use for calls.\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"ipmitool\": {\n \"description\": \"IPMITOOL contains the options to customize the Ipmitool provider.\",\n \"properties\": {\n \"cipherSuite\": {\n \"description\": \"CipherSuite that ipmitool will use for calls.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port that ipmitool will use for calls.\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"redfish\": {\n \"description\": \"Redfish contains the options to customize the Redfish provider.\",\n \"properties\": {\n \"port\": {\n \"description\": \"Port that redfish will use for calls.\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"rpc\": {\n \"description\": \"RPC contains the options to customize the RPC provider.\",\n \"properties\": {\n \"consumerURL\": {\n \"description\": \"ConsumerURL is the URL where an rpc consumer/listener is running and to which we will send and receive all notifications.\",\n \"type\": \"string\"\n },\n \"experimental\": {\n \"description\": \"Experimental options.\",\n \"properties\": {\n \"customRequestPayload\": {\n \"description\": \"CustomRequestPayload must be in json.\",\n \"type\": \"string\"\n },\n \"dotPath\": {\n \"description\": \"DotPath is the path to the json object where the bmclib RequestPayload{} struct will be embedded. For example: object.data.body\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"hmac\": {\n \"description\": \"HMAC is the options used to create a HMAC signature.\",\n \"properties\": {\n \"prefixSigDisabled\": {\n \"description\": \"PrefixSigDisabled determines whether the algorithm will be prefixed to the signature. Example: sha256=abc123\",\n \"type\": \"boolean\"\n },\n \"secrets\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\n \"properties\": {\n \"name\": {\n \"description\": \"name is unique within a namespace to reference a secret resource.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"namespace defines the space within which the secret name must be unique.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"description\": \"Secrets are a map of algorithms to secrets used for signing.\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"logNotificationsDisabled\": {\n \"description\": \"LogNotificationsDisabled determines whether responses from rpc consumer/listeners will be logged or not.\",\n \"type\": \"boolean\"\n },\n \"request\": {\n \"description\": \"Request is the options used to create the rpc HTTP request.\",\n \"properties\": {\n \"httpContentType\": {\n \"description\": \"HTTPContentType is the content type to use for the rpc request notification.\",\n \"type\": \"string\"\n },\n \"httpMethod\": {\n \"description\": \"HTTPMethod is the HTTP method to use for the rpc request notification.\",\n \"type\": \"string\"\n },\n \"staticHeaders\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": \"StaticHeaders are predefined headers that will be added to every request.\",\n \"type\": \"object\"\n },\n \"timestampFormat\": {\n \"description\": \"TimestampFormat is the time format for the timestamp header.\",\n \"type\": \"string\"\n },\n \"timestampHeader\": {\n \"description\": \"TimestampHeader is the header name that should contain the timestamp. Example: X-BMCLIB-Timestamp\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"signature\": {\n \"description\": \"Signature is the options used for adding an HMAC signature to an HTTP request.\",\n \"properties\": {\n \"appendAlgoToHeaderDisabled\": {\n \"description\": \"AppendAlgoToHeaderDisabled decides whether to append the algorithm to the signature header or not. Example: X-BMCLIB-Signature becomes X-BMCLIB-Signature-256 When set to true, a header will be added for each algorithm. Example: X-BMCLIB-Signature-256 and X-BMCLIB-Signature-512\",\n \"type\": \"boolean\"\n },\n \"headerName\": {\n \"description\": \"HeaderName is the header name that should contain the signature(s). Example: X-BMCLIB-Signature\",\n \"type\": \"string\"\n },\n \"includedPayloadHeaders\": {\n \"description\": \"IncludedPayloadHeaders are headers whose values will be included in the signature payload. Example: X-BMCLIB-My-Custom-Header All headers will be deduplicated.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"consumerURL\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\",\n \"insecureTLS\"\n ],\n \"type\": \"object\"\n },\n \"task\": {\n \"description\": \"Task defines the specific action to be performed.\",\n \"maxProperties\": 1,\n \"properties\": {\n \"oneTimeBootDeviceAction\": {\n \"description\": \"OneTimeBootDeviceAction represents a baseboard management one time set boot device operation.\",\n \"properties\": {\n \"device\": {\n \"description\": \"Devices represents the boot devices, in order for setting one time boot. Currently only the first device in the slice is used to set one time boot.\",\n \"items\": {\n \"description\": \"BootDevice represents boot device of the Machine.\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"efiBoot\": {\n \"description\": \"EFIBoot instructs the machine to use EFI boot.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"device\"\n ],\n \"type\": \"object\"\n },\n \"powerAction\": {\n \"description\": \"PowerAction represents a baseboard management power operation.\",\n \"enum\": [\n \"on\",\n \"off\",\n \"soft\",\n \"status\",\n \"cycle\",\n \"reset\"\n ],\n \"type\": \"string\"\n },\n \"virtualMediaAction\": {\n \"description\": \"VirtualMediaAction represents a baseboard management virtual media insert/eject.\",\n \"properties\": {\n \"kind\": {\n \"type\": \"string\"\n },\n \"mediaURL\": {\n \"description\": \"mediaURL represents the URL of the image to be inserted into the virtual media, or empty to eject media.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"task\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Task\",\n \"type\": \"object\"\n}", + "version": "bmc.tinkerbell.org/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Task", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Tinkerbell", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.4.5" + }, + "name": "tinkerbell", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Template.json b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Template.json new file mode 100644 index 00000000000..ea388edc933 --- /dev/null +++ b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Template.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Template", + "schema": "{\n \"description\": \"Template is the Schema for the Templates API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"TemplateSpec defines the desired state of Template.\",\n \"properties\": {\n \"data\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Template\",\n \"type\": \"object\"\n}", + "version": "tinkerbell.org/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Template", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Tinkerbell", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.4.5" + }, + "name": "tinkerbell", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Workflow.json b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Workflow.json new file mode 100644 index 00000000000..06f14586f2d --- /dev/null +++ b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/components/Workflow.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Workflow", + "schema": "{\n \"description\": \"Workflow is the Schema for the Workflows API.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"WorkflowSpec defines the desired state of Workflow.\",\n \"properties\": {\n \"hardwareMap\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A mapping of template devices to hadware mac addresses\",\n \"type\": \"object\"\n },\n \"hardwareRef\": {\n \"description\": \"Name of the Hardware associated with this workflow.\",\n \"type\": \"string\"\n },\n \"templateRef\": {\n \"description\": \"Name of the Template associated with this workflow.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Workflow\",\n \"type\": \"object\"\n}", + "version": "tinkerbell.org/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Workflow", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell" + }, + "model": { + "category": { + "name": "Provisioning" + }, + "displayName": "Tinkerbell", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "source_uri": "git://github.com/tinkerbell/charts/main/tinkerbell", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.4.5" + }, + "name": "tinkerbell", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"/\u003e\u003cpath class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"/\u003e\u003cpath class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"/\u003e\u003cpath class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"/\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/model.json b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/model.json new file mode 100644 index 00000000000..057d514ba74 --- /dev/null +++ b/server/meshmodel/tinkerbell/v0.4.5/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Provisioning" + }, + "displayName": "Tinkerbell", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#0087ac", + "secondaryColor": "#1a93b4", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#0087ac;}.cls-3{fill:#ffd100;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.70494,10.52828l2.05835-.41182a11.40126,11.40126,0,0,1,3.70512-.41157c.41157-.41157.41157-.82339.82339-.82339H42.52833a13.41467,13.41467,0,0,0-5.35165,1.64678l-2.05834,1.235h.82338C38.00007,11.35167,39.6466,10.93985,41.70494,10.52828Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.99352,87.51046a53.97983,53.97983,0,0,0-6.175,1.235c-.82339.82339-2.05835.82339-3.29331.82339-.82339,0-1.64677-.41182-2.05834,0-.41182,0-.82339,0-.82339.41157a11.793,11.793,0,0,0,9.88016-.41157,14.63184,14.63184,0,0,0,4.11669-.82339,6.96,6.96,0,0,0,2.05835-.82339H67.6403A3.1131,3.1131,0,0,0,65.99352,87.51046Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.35827,69.39692c-.41182-2.05835-1.235-2.05835-2.05835-3.70512-.41182-.82314-.41182-1.235-.82339-2.05835a76.75932,76.75932,0,0,1-2.05834-7.82156c0-.41182-.41157-.82339-.41157-1.235a2.474,2.474,0,0,0-.41182,1.64653c.41182,2.05834,1.23521,4.11669,1.64677,6.175l.41157.82339.41182,1.64678a9.69023,9.69023,0,0,0,.82314,3.2933,30.7026,30.7026,0,0,0,5.76347,6.99843,2.13831,2.13831,0,0,0-.82339-1.64678A36.18821,36.18821,0,0,1,15.35827,69.39692Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.5333,24.11331c.41157-.41157,2.05835-.82339,2.05835-1.235,0-.41182.82339-.82339,1.235-.82339a22.85773,22.85773,0,0,0,3.2933-2.46991c.41182-.41182.82339-.41182,1.235-.82339A5.65573,5.65573,0,0,0,24.415,20.40819a26.44556,26.44556,0,0,0-5.3519,4.11669l-.82314.82339-.82339,1.235A12.50508,12.50508,0,0,0,15.35827,29.465a9.778,9.778,0,0,0-1.235,4.94008v.82339q1.23471-2.47017,2.46991-4.94008c.82339-1.235,1.235-2.05835,2.05835-3.2933A9.61809,9.61809,0,0,1,21.5333,24.11331Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.81376,22.87835a27.67684,27.67684,0,0,0,2.88149,4.52826l.82339,1.64678V26.99505A9.01149,9.01149,0,0,0,80.81376,22.87835Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.28028,57.87023c-.41157-.41182-1.64653.41157-2.05835,1.64653A5.99462,5.99462,0,0,1,92.752,63.22188c-.82339.41157.82339-2.88173,0-4.11669s-1.235-.82339-1.64678.41157a30.51856,30.51856,0,0,1-3.05611,7.04415c-.37991.93721-.83645,1.97644-1.06058,2.42444l.41182-1.23521c.247-.37061.42011-.80128.64876-1.18923a9.39179,9.39179,0,0,0,.5862-1.69225,34.30436,34.30436,0,0,0,1.64677-6.175c0-1.23521.41157-2.47016.41157-3.70512l.82339-2.05835v4.94008a1.4338,1.4338,0,0,0,2.05835-.41182,5.94963,5.94963,0,0,0,.82339-2.88148,41.94117,41.94117,0,0,0-.82339-14.40842,44.8235,44.8235,0,0,0-4.11669-10.29173C86.577,25.34827,84.9302,19.58505,84.51864,19.58505s-.41157-1.23521-.41157-1.64678a22.64127,22.64127,0,0,0-2.88174-3.70512c-.82339-.82314-5.35165-3.2933-2.88173,0a6.63705,6.63705,0,0,1,1.64678,2.88173A6.04867,6.04867,0,0,1,77.932,14.645a8.61516,8.61516,0,0,0-2.47017-1.64678,20.05766,20.05766,0,0,0-2.88148-1.23495,13.71057,13.71057,0,0,1-2.47017-1.235A4.1122,4.1122,0,0,1,68.05187,8.8815a3.51664,3.51664,0,0,0-2.88148,0h-.41182L64.347,8.46993V8.05811A2.13931,2.13931,0,0,0,62.70022,7.235l-1.235-.82339c-1.23495-.82339-2.88173-2.05835-4.11669-2.88174a7.31353,7.31353,0,0,0-4.11669-1.64677c-.82339,0-2.88173-.82314-3.2933-.41157a1.25194,1.25194,0,0,0,0,1.64677,12.87788,12.87788,0,0,1,4.11669,2.05835l.41157.41157H52.82006a44.75476,44.75476,0,0,0-7.41.41157c-.82338,0-1.235.41182-2.05834.41182A27.80349,27.80349,0,0,1,37.5885,7.235a3.71163,3.71163,0,0,0-2.05834.41156c-.41182.41157-.41182.82339-.82339.82339a19.38655,19.38655,0,0,0-3.70513,1.235,5.65678,5.65678,0,0,0-3.2933,2.05835c-1.235.82338-4.52851,2.88173-4.94008,3.70512a1.51247,1.51247,0,0,0-1.235.41157,21.57613,21.57613,0,0,0-4.52851,4.11669,22.6037,22.6037,0,0,0-2.88148,3.70512l-.82339,1.235a28.46842,28.46842,0,0,0-4.11669,7.82156c0,.82339-.82339,4.94008.41157,3.70513,0-.82339.41182-1.235,1.23521-1.64678a1.43676,1.43676,0,0,1-.41182.82339c0,.41182.41182.82339.41182,1.23495a3.12119,3.12119,0,0,1-.82339,1.64678q-.61773,2.47017-1.23521,4.94008a17.6847,17.6847,0,0,0,0,6.58661H8.35984a3.122,3.122,0,0,0-.82339,1.64677c0,1.235-.41157,2.05835-.41157,1.64653a17.50246,17.50246,0,0,0-.82339-4.52826c-.82338-1.235-.82338-2.88173-.82338-4.52826,0-.82339.41182-2.05835.41182-2.88173V38.9333c0-1.64653.41156-5.35165.41156-5.76322.41182-1.64677,2.47017-4.52851,1.64678-6.175-.82339-1.64678-1.64678,0-2.05834.41156-.41182.41182-.82339.82339-.82339,1.235a43.73712,43.73712,0,0,0-1.64678,7.82182c-.41157,2.05834-.41157,4.11669-.82314,6.175V49.225a35.67569,35.67569,0,0,1,.82314,4.11669c0,2.05835,2.88173,7.41025,2.47017,7.82182a1.25194,1.25194,0,0,0,0,1.64677,45.76865,45.76865,0,0,0,7.41,13.9966c.82339.82339,3.70512,4.52851,4.11669,4.94008A2.13908,2.13908,0,0,1,18.24,83.39377l.41157.41157,7.41-9.46834c2.88174-3.70512,4.52852-4.52851,6.99843-8.23338,2.05835-2.47017,4.11669-6.175,5.76347-5.35165A4.31225,4.31225,0,0,1,40.47,61.98692c.82339.82339.41182,2.46992-1.23495,4.1167-2.88174,3.70487-4.52826,5.76321-7.41,9.46834L26.885,81.747l1.64678.82339v.82339a1.3144,1.3144,0,0,0,1.235,1.235A27.30043,27.30043,0,0,0,37.5885,88.3336l2.46992.41182c1.64677.41157,1.235,1.235,2.88173,1.64653.41157,0,.82339.82338,1.235,1.2352-2.46992.82314-4.11669-1.64677-4.94008-.41182a1.838,1.838,0,0,0,0,2.05835c-.41157,0-1.235-.41157-1.64653-.41157-.41182-.41182-1.23521-.82339-1.64678-1.235l-.82338-.41182-.41157-.41156a8.96227,8.96227,0,0,0-3.29331-2.05835c-.41182,0-1.2352-1.235-2.05834-1.64678C27.70834,86.27525,26.885,85.45212,25.65,85.0403l-1.64678,1.64677c.82339.82339,2.05834,1.64653,2.88173,2.46992,1.64678,1.235,2.88174,2.47016,4.52851,3.70512a19.22834,19.22834,0,0,0,4.1167,2.05835l1.23495.41157a6.637,6.637,0,0,1,2.88174,1.64677c.41157.41157,2.88148.82339,3.2933,1.235,1.235,1.235,6.58661,1.235,4.94008-.82339A8.96452,8.96452,0,0,0,44.58668,95.332H55.70179c.82339.41182,2.88174-.82339,4.1167-1.235s3.2933-.41157,3.70512-.82339a22.29455,22.29455,0,0,1,6.175-1.64653c.41156,0,.41156,0,.82338-.41182q1.23471-.61734,2.46992-1.23495c2.05834-.41157,2.88173-1.235,4.94008-1.64678.41157,0,1.235-.41157,1.235-.82314v-.82339c0-.41182.41157-.41182.82339-.41182,2.05834-.82313,4.93982-2.05834,5.35164-4.52826,0-.82339-.41156-1.23495-1.235-.82339A10.79241,10.79241,0,0,1,80.40194,82.982l.41157-.41157c.41182-.41182,1.23521-1.235,1.64678-1.64678a13.048,13.048,0,0,0,2.05835-2.46991c.41156-.82339,1.64677-1.64678,2.46991-2.47017a7.22506,7.22506,0,0,0,1.64678-2.05834,18.22814,18.22814,0,0,1,4.94008-6.175,8.96341,8.96341,0,0,0,2.05834-3.2933A4.76422,4.76422,0,0,1,97.6921,61.5751C97.6921,60.34015,97.6921,58.2818,97.28028,57.87023ZM37.17668,10.52828A13.41467,13.41467,0,0,1,42.52833,8.8815H48.2918c-.41182,0-.41182.41182-.82339.82339a11.40126,11.40126,0,0,0-3.70512.41157l-2.05835.41182c-2.05834.41157-3.70487.82339-5.76322,1.235h-.82338ZM12.8881,68.162a9.69023,9.69023,0,0,1-.82314-3.2933l-.41182-1.64678-.41157-.82339c-.41156-2.05834-1.23495-4.11669-1.64677-6.175a2.474,2.474,0,0,1,.41182-1.64653c0,.41157.41157.82314.41157,1.235a76.75932,76.75932,0,0,0,2.05834,7.82156c.41157.82339.41157,1.23521.82339,2.05835.82339,1.64677,1.64653,1.64677,2.05835,3.70512a36.18821,36.18821,0,0,0,2.46991,4.11669,2.13831,2.13831,0,0,1,.82339,1.64678A30.7026,30.7026,0,0,1,12.8881,68.162Zm3.70512-37.87361q-1.23508,2.47017-2.46991,4.94008V34.405a9.778,9.778,0,0,1,1.235-4.94008,12.50508,12.50508,0,0,1,2.05834-2.88173l.82339-1.235.82314-.82339a26.44556,26.44556,0,0,1,5.3519-4.11669,5.65573,5.65573,0,0,1,4.93983-1.64653c-.41157.41157-.82314.41157-1.235.82339a22.85773,22.85773,0,0,1-3.2933,2.46991c-.41157,0-1.235.41157-1.235.82339,0,.41157-1.64678.82339-2.05835,1.235a9.61809,9.61809,0,0,0-2.88173,2.88174C17.82818,28.23,17.41661,29.05339,16.59322,30.28835ZM67.6403,88.74542a14.63184,14.63184,0,0,1-4.11669.82339,11.793,11.793,0,0,1-9.88016.41157c0-.41157.41157-.41157.82339-.41157.41157-.41182,1.235,0,2.05834,0,1.235,0,2.46992,0,3.29331-.82339a53.97983,53.97983,0,0,1,6.175-1.235,3.1131,3.1131,0,0,1,1.64678.41157h2.05835A6.96,6.96,0,0,1,67.6403,88.74542Zm13.585-44.872a5.25078,5.25078,0,0,1-2.88173,2.05835c-2.46992.41182-10.7033,4.11669-12.76165,4.11669a12.0222,12.0222,0,0,0-3.70512.82339c-.82339.41156-3.70512.41156-4.52826.82338-.41182.41157-1.64678,0-1.64678.82339,0,.82314,1.235,1.64653,1.64678,2.46992.41157.82339,2.88148,2.46991,3.2933,2.88173A24.63664,24.63664,0,0,1,63.11179,60.752a5.67535,5.67535,0,0,1,1.235,1.64652c.41182.82339,1.2352,1.235,1.64677,1.64678,3.70513,3.70487,4.11669,4.52826,4.94008,5.35165s1.235,1.64678,2.05835,2.46991c0,.41182,0,1.23521-.41157,1.23521a2.47614,2.47614,0,0,1-1.64678.41157,3.14345,3.14345,0,0,1-2.05834-.82339c-1.64678-1.64652-1.64678-.82339-3.29331-2.88173-.82338-.82314-.82338-1.235-4.11669-4.93983-.41182-.41182-2.05834-2.05835-2.05834-2.47017,0-.41157-1.23521-1.235-1.64678-1.64652-.82339-1.23521-2.05835-2.05835-2.88173-3.29356-.41157-.41157-1.235-.82313-1.64653-1.23495-1.64678-.41157-3.29355,2.05834-3.29355,2.88173a27.18578,27.18578,0,0,0-.41157,5.76347,39.6829,39.6829,0,0,1,0,9.87991v5.35165c0,.41182-.41157.82338-.41157,1.2352l-.41182.41157c-.41157.41157-1.64653,0-1.64653-.41157-.41182-.82338-.82339-1.2352-.82339-2.05834,0-2.47017,0-15.64363.41157-18.93693a7.0036,7.0036,0,0,0,.41182-2.88174s.82339-2.05834,0-3.2933-2.47016-.41157-3.29355-.41157a43.35332,43.35332,0,0,0-7.41,1.235c-4.52826.82339-12.76164,3.2933-16.05494,2.05834a.40325.40325,0,0,0-.41182-.41156,1.83792,1.83792,0,0,1,0-2.05835c.41182-.82339,1.23495-1.23521,1.64677-1.64678a5.81158,5.81158,0,0,1,3.70488-.41157c1.64677,0,16.05519-2.47016,16.46676-2.47016a6.63521,6.63521,0,0,0,2.88174-1.64653c.82338-.82339-2.46992-3.29355-2.46992-3.29355s.41157.41182-3.2933-2.46992a6.05109,6.05109,0,0,0-2.47017-2.05834A24.84609,24.84609,0,0,1,33.06,37.28677,29.03346,29.03346,0,0,1,29.35487,34.405a1.99012,1.99012,0,0,1,0-2.88173,1.81029,1.81029,0,0,1,2.05834-.41157,20.61181,20.61181,0,0,1,3.29356,2.88173c.82313.82314,2.88148,2.88148,5.76321,5.35165,3.70513,2.88173,3.70513,3.70487,4.94008,4.52826.41157.41182,1.235.82339,1.64678,1.235.82314.41182.41157-1.64653.41157-2.05835,0-1.64652-.41157-2.88148-.41157-4.52826-.41182-2.05834-.82339-13.17346-.82339-15.23181a7.42208,7.42208,0,0,1,.82339-4.11669,2.26361,2.26361,0,0,1,2.05835-1.235c.82314-.41157,1.235.82339,1.235.82339v.41157a99.15409,99.15409,0,0,0,0,15.64338v9.05677c0,2.05835,2.46991,0,2.46991,0l.41182-.41157a37.102,37.102,0,0,1,3.70487-4.11669c.82339-1.235,7.41-10.70355,8.23338-11.52669,1.235-1.64677,2.05835-2.05834,3.29331-3.70512,0-.41157.82339-.82339,1.23521-.82339a.88543.88543,0,0,1,.82313.82339v1.235q-1.2347,1.85244-2.46991,3.70512c-.82339,1.235-7.82182,11.11512-8.64495,12.35008-.41182.82338-1.23521,1.64652-1.64678,2.46991-.82339.82339-2.88173,1.64678-3.2933,3.2933-.41182,1.64678.82339,2.47017,2.05834,2.05835a38.10013,38.10013,0,0,1,4.11669-1.235c4.1167-1.235,14.82-4.52826,18.93669-5.35165h.82338c.41157,0,.82339,0,.82339.41157Zm3.29331-14.82-.82339-1.64678a27.67684,27.67684,0,0,1-2.88149-4.52826,9.01149,9.01149,0,0,1,3.70488,4.1167Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M86.98855,68.98535c.22413-.448.68067-1.48723,1.06058-2.42444-.22865.38795-.40177.81862-.64876,1.18923Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-3\" d=\"M80.40194,42.63842h-.82338c-4.1167.82339-14.82,4.11669-18.93669,5.35165a38.10013,38.10013,0,0,0-4.11669,1.235c-1.23495.41182-2.47016-.41157-2.05834-2.05835.41157-1.64652,2.46991-2.46991,3.2933-3.2933.41157-.82339,1.235-1.64653,1.64678-2.46991.82313-1.235,7.82156-11.11512,8.64495-12.35008s1.64678-2.47016,2.46991-3.70512v-1.235a.88543.88543,0,0,0-.82313-.82339c-.41182,0-1.23521.41182-1.23521.82339-1.235,1.64678-2.05835,2.05835-3.29331,3.70512-.82338.82314-7.41,10.29173-8.23338,11.52669a37.102,37.102,0,0,0-3.70487,4.11669l-.41182.41157s-2.46991,2.05835-2.46991,0V34.81661a99.15409,99.15409,0,0,1,0-15.64338v-.41157s-.41182-1.235-1.235-.82339a2.26361,2.26361,0,0,0-2.05835,1.235,7.42208,7.42208,0,0,0-.82339,4.11669c0,2.05835.41157,13.17347.82339,15.23181,0,1.64678.41157,2.88174.41157,4.52826,0,.41182.41157,2.47017-.41157,2.05835-.41182-.41157-1.23521-.82314-1.64678-1.235-1.235-.82339-1.235-1.64653-4.94008-4.52826-2.88173-2.47017-4.94008-4.52851-5.76321-5.35165a20.61181,20.61181,0,0,0-3.29356-2.88173,1.81029,1.81029,0,0,0-2.05834.41157,1.99012,1.99012,0,0,0,0,2.88173A29.03346,29.03346,0,0,0,33.06,37.28677a24.84609,24.84609,0,0,0,3.2933,3.29331,6.05109,6.05109,0,0,1,2.47017,2.05834c3.70487,2.88174,3.2933,2.46992,3.2933,2.46992s3.2933,2.47016,2.46992,3.29355a6.63521,6.63521,0,0,1-2.88174,1.64653c-.41157,0-14.82,2.47016-16.46676,2.47016a5.81158,5.81158,0,0,0-3.70488.41157c-.41182.41157-1.235.82339-1.64677,1.64678a1.83792,1.83792,0,0,0,0,2.05835.40325.40325,0,0,1,.41182.41156c3.2933,1.235,11.52668-1.235,16.05494-2.05834a43.35332,43.35332,0,0,1,7.41-1.235c.82339,0,2.47016-.82339,3.29355.41157s0,3.2933,0,3.2933a7.0036,7.0036,0,0,1-.41182,2.88174c-.41157,3.2933-.41157,16.46676-.41157,18.93693,0,.82314.41157,1.235.82339,2.05834,0,.41157,1.235.82314,1.64653.41157l.41182-.41157c0-.41182.41157-.82338.41157-1.2352V74.74857a39.6829,39.6829,0,0,0,0-9.87991,27.18578,27.18578,0,0,1,.41157-5.76347c0-.82339,1.64677-3.2933,3.29355-2.88173.41157.41182,1.235.82338,1.64653,1.23495.82338,1.23521,2.05834,2.05835,2.88173,3.29356.41157.41157,1.64678,1.23495,1.64678,1.64652,0,.41182,1.64652,2.05835,2.05834,2.47017,3.29331,3.70487,3.29331,4.11669,4.11669,4.93983,1.64653,2.05834,1.64653,1.23521,3.29331,2.88173a3.14345,3.14345,0,0,0,2.05834.82339,2.47614,2.47614,0,0,0,1.64678-.41157c.41157,0,.41157-.82339.41157-1.23521-.82339-.82313-1.235-1.64652-2.05835-2.46991s-1.23495-1.64678-4.94008-5.35165c-.41157-.41182-1.23495-.82339-1.64677-1.64678a5.67535,5.67535,0,0,0-1.235-1.64652,24.63664,24.63664,0,0,0-2.46992-2.88174c-.41182-.41182-2.88173-2.05834-3.2933-2.88173-.41182-.82339-1.64678-1.64678-1.64678-2.46992,0-.82339,1.235-.41182,1.64678-.82339.82314-.41182,3.70487-.41182,4.52826-.82338a12.0222,12.0222,0,0,1,3.70512-.82339c2.05835,0,10.29173-3.70487,12.76165-4.11669a5.25078,5.25078,0,0,0,2.88173-2.05835V43.05C81.22533,42.63842,80.81351,42.63842,80.40194,42.63842Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 100 100\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:none;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M21.44231,23.95031c.4107-.4107,2.054-.82165,2.054-1.23235,0-.411.82165-.82166,1.23235-.82166A22.80979,22.80979,0,0,0,28.015,19.4316c.411-.41095.82166-.41095,1.23236-.82165A5.6438,5.6438,0,0,0,24.318,20.253a26.38965,26.38965,0,0,0-5.34061,4.108l-.8214.82165L17.33431,26.415a12.47907,12.47907,0,0,0-2.054,2.87566A9.75743,9.75743,0,0,0,14.048,34.22033V35.042q1.2321-2.465,2.4647-4.92966c.82166-1.23235,1.23236-2.054,2.054-3.28636A9.59768,9.59768,0,0,1,21.44231,23.95031Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M65.80874,87.21372a53.86643,53.86643,0,0,0-6.162,1.23235c-.82165.82166-2.054.82166-3.28635.82166-.82166,0-1.64331-.411-2.054,0-.41095,0-.82165,0-.82165.4107a11.76813,11.76813,0,0,0,9.85932-.4107,14.60115,14.60115,0,0,0,4.108-.82166,6.94527,6.94527,0,0,0,2.054-.82165h-2.054A3.10658,3.10658,0,0,0,65.80874,87.21372Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M15.2803,69.13839c-.41095-2.054-1.23235-2.054-2.054-3.69731-.41095-.8214-.41095-1.23235-.82165-2.054a76.59728,76.59728,0,0,1-2.054-7.80506c0-.411-.4107-.82166-.4107-1.23236A2.46877,2.46877,0,0,0,9.529,55.99272c.41095,2.054,1.2326,4.108,1.6433,6.162l.4107.82165.411,1.6433a9.66986,9.66986,0,0,0,.8214,3.28636,30.63767,30.63767,0,0,0,5.75131,6.98366,2.13379,2.13379,0,0,0-.82165-1.6433A36.11291,36.11291,0,0,1,15.2803,69.13839Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M41.5714,10.39393l2.054-.41095a11.37733,11.37733,0,0,1,3.69731-.4107c.4107-.4107.4107-.82165.82165-.82165H42.39305a13.38641,13.38641,0,0,0-5.34036,1.6433l-2.054,1.23236h.82165C37.87434,11.21559,39.51739,10.80463,41.5714,10.39393Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M80.59772,22.718a27.61881,27.61881,0,0,0,2.8754,4.5187L84.29478,28.88V26.826A8.99252,8.99252,0,0,0,80.59772,22.718Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-2\" d=\"M97.0295,57.636c-.4107-.41095-1.64305.4107-2.054,1.643a5.982,5.982,0,0,1-2.4647,3.69731c-.82165.4107.82165-2.87566,0-4.108s-1.23235-.82165-1.6433.4107a30.45441,30.45441,0,0,1-3.04967,7.0293,9.37175,9.37175,0,0,0,.585-1.68869,34.23216,34.23216,0,0,0,1.64331-6.162c0-1.2326.4107-2.465.4107-3.69731l.82165-2.054V57.636a1.43077,1.43077,0,0,0,2.054-.41095,5.93713,5.93713,0,0,0,.82165-2.87541,41.85232,41.85232,0,0,0-.82165-14.378,44.72807,44.72807,0,0,0-4.108-10.27c-2.87565-4.519-4.519-10.27-4.92965-10.27s-.4107-1.2326-.4107-1.6433A22.59335,22.59335,0,0,0,81.00842,14.091c-.82165-.8214-5.34036-3.28636-2.87566,0a6.62291,6.62291,0,0,1,1.64331,2.87566,6.03609,6.03609,0,0,1-2.054-2.46471,8.597,8.597,0,0,0-2.465-1.6433,20.01664,20.01664,0,0,0-2.87541-1.23235,13.68156,13.68156,0,0,1-2.465-1.23236,4.1035,4.1035,0,0,1-2.054-1.6433,3.50925,3.50925,0,0,0-2.87541,0h-.41095l-.4107-.4107V7.929a2.1348,2.1348,0,0,0-1.6433-.8214L61.29,6.28593c-1.23235-.82166-2.87565-2.054-4.108-2.87566A7.29814,7.29814,0,0,0,53.074,1.767c-.82165,0-2.87566-.8214-3.28636-.4107a1.24931,1.24931,0,0,0,0,1.6433,12.85056,12.85056,0,0,1,4.108,2.054l.4107.4107h-1.6433a44.65925,44.65925,0,0,0-7.39436.41071c-.82166,0-1.23236.41095-2.054.41095a27.74483,27.74483,0,0,1-5.75106.82165,3.70376,3.70376,0,0,0-2.054.4107c-.41095.4107-.41095.82165-.82165.82165a19.34565,19.34565,0,0,0-3.69731,1.23235,5.64484,5.64484,0,0,0-3.28636,2.054c-1.23235.82165-4.51895,2.87565-4.92966,3.6973a1.50928,1.50928,0,0,0-1.23235.4107,21.53127,21.53127,0,0,0-4.519,4.108,22.55566,22.55566,0,0,0-2.8754,3.69731L13.2263,24.772a28.40821,28.40821,0,0,0-4.108,7.80506c0,.82165-.82165,4.92966.4107,3.69731,0-.82165.41095-1.23235,1.2326-1.6433a1.43372,1.43372,0,0,1-.41095.82165c0,.41095.41095.82165.41095,1.23235a3.11459,3.11459,0,0,1-.82165,1.6433q-.61642,2.465-1.2326,4.92966a17.64744,17.64744,0,0,0,0,6.57271h-.4107A3.11552,3.11552,0,0,0,7.475,51.474c0,1.23235-.4107,2.054-.4107,1.64305a17.46568,17.46568,0,0,0-.82165-4.51871C5.421,47.366,5.421,45.7227,5.421,44.07964c0-.82165.411-2.054.411-2.87565V38.739c0-1.64305.4107-5.34036.4107-5.75106.411-1.6433,2.465-4.51895,1.6433-6.162-.82165-1.6433-1.6433,0-2.054.4107-.411.411-.82166.82166-.82166,1.23236A43.64476,43.64476,0,0,0,3.367,36.27433c-.4107,2.054-.4107,4.108-.8214,6.162v6.57271a35.60083,35.60083,0,0,1,.8214,4.108c0,2.054,2.87566,7.39461,2.465,7.80531a1.2493,1.2493,0,0,0,0,1.64331A45.672,45.672,0,0,0,13.2263,76.53275c.82165.82165,3.69731,4.519,4.108,4.92966a2.13456,2.13456,0,0,1,.82165,1.6433l.4107.41071L25.961,74.06805c2.87566-3.69731,4.519-4.519,6.98366-8.216,2.054-2.465,4.108-6.162,5.75131-5.34036A4.303,4.303,0,0,1,40.33905,61.744c.82165.82165.41095,2.4647-1.23236,4.108-2.87565,3.69706-4.5187,5.75106-7.39436,9.44837l-4.92966,6.162,1.64331.82165v.82165a1.31163,1.31163,0,0,0,1.23235,1.23236,27.24266,27.24266,0,0,0,7.80531,3.69705l2.46471.41095c1.6433.4107,1.23235,1.23236,2.87565,1.64306.4107,0,.82165.82165,1.23235,1.2326-2.4647.8214-4.108-1.6433-4.92966-.41095a1.83407,1.83407,0,0,0,0,2.054c-.4107,0-1.23235-.4107-1.64305-.4107-.41095-.41095-1.2326-.82165-1.6433-1.23235l-.82165-.41095-.4107-.4107a8.94339,8.94339,0,0,0-3.28636-2.054c-.41095,0-1.2326-1.23235-2.054-1.6433-1.64331-.82165-2.465-1.64305-3.69731-2.054l-1.6433,1.6433c.82165.82165,2.054,1.64305,2.87565,2.4647,1.64331,1.23236,2.87566,2.465,4.519,3.69731a19.18828,19.18828,0,0,0,4.108,2.054l1.23235.4107a6.6231,6.6231,0,0,1,2.87566,1.6433c.4107.4107,2.8754.82165,3.28635,1.23235,1.23235,1.23235,6.57271,1.23235,4.92966-.82165a8.94552,8.94552,0,0,0-3.28661-2.054H55.53872c.82166.41095,2.87566-.82166,4.108-1.23236s3.28636-.4107,3.69731-.82165a22.2476,22.2476,0,0,1,6.162-1.64305c.4107,0,.4107,0,.82165-.41095q1.2321-.61605,2.46471-1.23235c2.054-.4107,2.87565-1.23236,4.92965-1.64331.4107,0,1.23236-.4107,1.23236-.8214v-.82165c0-.41095.4107-.41095.82165-.41095,2.054-.8214,4.92941-2.054,5.34036-4.51871,0-.82165-.4107-1.23235-1.23235-.82165a10.76974,10.76974,0,0,1-3.69731,2.054l.4107-.4107c.41095-.41095,1.2326-1.23235,1.6433-1.6433a13.02085,13.02085,0,0,0,2.054-2.4647c.4107-.82166,1.6433-1.64331,2.4647-2.465a7.21,7.21,0,0,0,1.6433-2.054,18.18989,18.18989,0,0,1,4.92966-6.162,8.94472,8.94472,0,0,0,2.054-3.28636,4.7542,4.7542,0,0,1,2.054-2.87566C97.44045,60.10072,97.44045,58.04672,97.0295,57.636ZM37.05269,10.39393a13.38641,13.38641,0,0,1,5.34036-1.6433h5.75131c-.41095,0-.41095.411-.82165.82165a11.37733,11.37733,0,0,0-3.69731.4107l-2.054.41095c-2.054.4107-3.69706.82166-5.75106,1.23236h-.82165ZM12.81535,67.906a9.66986,9.66986,0,0,1-.8214-3.28636l-.411-1.6433-.4107-.82165c-.4107-2.054-1.23235-4.108-1.6433-6.162a2.46877,2.46877,0,0,1,.41095-1.64306c0,.4107.4107.8214.4107,1.23236a76.59728,76.59728,0,0,0,2.054,7.80506c.4107.82165.4107,1.2326.82165,2.054.82165,1.64331,1.64305,1.64331,2.054,3.69731a36.11291,36.11291,0,0,0,2.46471,4.108,2.13379,2.13379,0,0,1,.82165,1.6433A30.63767,30.63767,0,0,1,12.81535,67.906Zm3.6973-37.79372Q15.28018,32.57727,14.048,35.042v-.82165a9.75743,9.75743,0,0,1,1.23235-4.92966,12.47907,12.47907,0,0,1,2.054-2.87566l.82165-1.23235.8214-.82165A26.38965,26.38965,0,0,1,24.318,20.253a5.6438,5.6438,0,0,1,4.92941-1.643c-.4107.4107-.8214.4107-1.23236.82165a22.80979,22.80979,0,0,1-3.28635,2.4647c-.4107,0-1.23235.4107-1.23235.82166,0,.4107-1.64331.82165-2.054,1.23235A9.59768,9.59768,0,0,0,18.56666,26.826C17.745,28.05832,17.33431,28.88,16.51265,30.11232Zm50.9394,58.33375a14.60115,14.60115,0,0,1-4.108.82166,11.76813,11.76813,0,0,1-9.85932.4107c0-.4107.4107-.4107.82165-.4107.4107-.411,1.23235,0,2.054,0,1.23235,0,2.4647,0,3.28635-.82166a53.86643,53.86643,0,0,1,6.162-1.23235,3.10658,3.10658,0,0,1,1.64331.4107h2.054A6.94527,6.94527,0,0,1,67.45205,88.44607ZM81.00842,43.66869a5.23971,5.23971,0,0,1-2.87566,2.054c-2.4647.41095-10.68071,4.108-12.73472,4.108a11.99681,11.99681,0,0,0-3.6973.82166c-.82166.4107-3.69731.4107-4.51871.82165-.41095.4107-1.64331,0-1.64331.82165,0,.8214,1.23236,1.64305,1.64331,2.4647.4107.82166,2.8754,2.46471,3.28635,2.87566a24.58425,24.58425,0,0,1,2.46471,2.87565,5.66333,5.66333,0,0,1,1.23235,1.64306c.41095.82165,1.2326,1.23235,1.6433,1.6433,3.69731,3.69706,4.108,4.51871,4.92966,5.34036s1.23235,1.6433,2.054,2.4647c0,.41095,0,1.23261-.41071,1.23261a2.47091,2.47091,0,0,1-1.6433.4107,3.13678,3.13678,0,0,1-2.054-.82166c-1.64331-1.64305-1.64331-.82165-3.28636-2.87565-.82165-.8214-.82165-1.23235-4.108-4.92941-.41095-.41095-2.054-2.054-2.054-2.465,0-.4107-1.2326-1.23236-1.6433-1.64306-.82165-1.2326-2.054-2.054-2.87566-3.2866-.4107-.4107-1.23235-.8214-1.64305-1.23235-1.6433-.4107-3.28661,2.054-3.28661,2.87565a27.12853,27.12853,0,0,0-.4107,5.75131,39.59937,39.59937,0,0,1,0,9.85907v5.34036c0,.41095-.4107.82165-.4107,1.2326l-.41095.4107c-.4107.4107-1.643,0-1.643-.4107-.41095-.82165-.82165-1.2326-.82165-2.054,0-2.465,0-15.61063.4107-18.897a6.98879,6.98879,0,0,0,.41095-2.87565s.82165-2.054,0-3.28636-2.465-.4107-3.28661-.4107A43.26181,43.26181,0,0,0,36.231,54.76036c-4.51871.82166-12.73472,3.28636-16.02108,2.054a.4024.4024,0,0,0-.41095-.4107,1.834,1.834,0,0,1,0-2.054c.41095-.82165,1.23235-1.2326,1.6433-1.6433a5.79933,5.79933,0,0,1,3.69706-.4107c1.6433,0,16.02133-2.465,16.432-2.465a6.62119,6.62119,0,0,0,2.87565-1.64305c.82166-.82165-2.4647-3.2866-2.4647-3.2866s.4107.41095-3.28636-2.46471a6.03832,6.03832,0,0,0-2.465-2.054A24.79386,24.79386,0,0,1,32.94468,37.096a28.97317,28.97317,0,0,1-3.6973-2.87565,1.98594,1.98594,0,0,1,0-2.87566,1.80648,1.80648,0,0,1,2.054-.4107A20.5684,20.5684,0,0,1,34.588,33.80963c.8214.8214,2.8754,2.8754,5.75106,5.34036,3.6973,2.87565,3.6973,3.697,4.92966,4.5187.4107.41095,1.23235.82165,1.6433,1.23236.8214.41095.4107-1.64306.4107-2.054,0-1.64305-.4107-2.8754-.4107-4.51871-.41095-2.054-.82165-13.14567-.82165-15.19967a7.40644,7.40644,0,0,1,.82165-4.108,2.25883,2.25883,0,0,1,2.054-1.23235c.8214-.4107,1.23235.82165,1.23235.82165v.4107a98.94523,98.94523,0,0,0,0,15.61038v9.03766c0,2.054,2.46471,0,2.46471,0l.41095-.4107a37.02277,37.02277,0,0,1,3.69706-4.108c.82165-1.23236,7.39436-10.681,8.216-11.50237,1.23235-1.64331,2.054-2.054,3.28636-3.69731,0-.4107.82165-.82165,1.2326-.82165a.88356.88356,0,0,1,.8214.82165v1.23235q-1.2321,1.84853-2.4647,3.69731c-.82166,1.23235-7.80532,11.09167-8.62672,12.324-.41095.82165-1.2326,1.64305-1.6433,2.4647-.82165.82165-2.87566,1.64331-3.28636,3.28636-.41095,1.6433.82165,2.465,2.054,2.054a38.01966,38.01966,0,0,1,4.108-1.23235c4.108-1.23235,14.78873-4.51871,18.89674-5.34036h.82165c.4107,0,.82165,0,.82165.4107ZM84.29478,28.88l-.82166-1.64331a27.61881,27.61881,0,0,1-2.8754-4.5187,8.99252,8.99252,0,0,1,3.69706,4.108Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.4.5" + }, + "name": "tinkerbell", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Automation \u0026 Configuration", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Backup.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Backup.json new file mode 100644 index 00000000000..3471ff9c041 --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Backup.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Backup", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"backupPath\": {\n \"type\": \"string\"\n },\n \"objecIDs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"persistentVolumeClaimSpec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeSpec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"secretNamespace\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"claimRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"controllerExpandSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"controllerPublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeStageSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"volumeHandle\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"driver\",\n \"volumeHandle\"\n ],\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"endpointsNamespace\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"local\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"mountOptions\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"nodeAffinity\": {\n \"properties\": {\n \"required\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeReclaimPolicy\": {\n \"type\": \"string\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"vineyarddName\": {\n \"type\": \"string\"\n },\n \"vineyarddNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Backup\",\n \"type\": \"object\"\n}", + "version": "k8s.v6d.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Backup", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#35eed7\"/\u003e\u003cstop offset=\"1\" stop-color=\"#22b1fd\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg id=\"正稿\"\u003e\u003cg id=\"编组\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"编组-2\"\u003e\u003cg id=\"编组备份\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/CSIDriver.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/CSIDriver.json new file mode 100644 index 00000000000..84b7b9eb3ca --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/CSIDriver.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "CSIDriver", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"clusters\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enableToleration\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"enableVerboseLog\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"image\": {\n \"default\": \"vineyardcloudnative/vineyard-operator\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"type\": \"string\"\n },\n \"sidecar\": {\n \"default\": {\n \"attacherImage\": \"registry.k8s.io/sig-storage/csi-attacher:v4.0.0\",\n \"enableTopology\": false,\n \"imagePullPolicy\": \"Always\",\n \"livenessProbeImage\": \"registry.k8s.io/sig-storage/livenessprobe:v2.8.0\",\n \"nodeRegistrarImage\": \"registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.6.0\",\n \"provisionerImage\": \"registry.k8s.io/sig-storage/csi-provisioner:v3.3.0\"\n },\n \"properties\": {\n \"attacherImage\": {\n \"default\": \"registry.k8s.io/sig-storage/csi-attacher:v4.0.0\",\n \"type\": \"string\"\n },\n \"enableTopology\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"imagePullPolicy\": {\n \"default\": \"Always\",\n \"type\": \"string\"\n },\n \"livenessProbeImage\": {\n \"default\": \"registry.k8s.io/sig-storage/livenessprobe:v2.8.0\",\n \"type\": \"string\"\n },\n \"nodeRegistrarImage\": {\n \"default\": \"registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.6.0\",\n \"type\": \"string\"\n },\n \"provisionerImage\": {\n \"default\": \"registry.k8s.io/sig-storage/csi-provisioner:v3.3.0\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"default\": \"vineyard-csi\",\n \"type\": \"string\"\n },\n \"volumeBindingMode\": {\n \"default\": \"WaitForFirstConsumer\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"CSI Driver\",\n \"type\": \"object\"\n}", + "version": "k8s.v6d.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "CSI Driver", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#35eed7\"/\u003e\u003cstop offset=\"1\" stop-color=\"#22b1fd\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg id=\"正稿\"\u003e\u003cg id=\"编组\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"编组-2\"\u003e\u003cg id=\"编组备份\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/GlobalObject.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/GlobalObject.json new file mode 100644 index 00000000000..5e65a076091 --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/GlobalObject.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "GlobalObject", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"members\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"metadata\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"signature\": {\n \"type\": \"string\"\n },\n \"typename\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"signature\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Global Object\",\n \"type\": \"object\"\n}", + "version": "k8s.v6d.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Global Object", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#35eed7\"/\u003e\u003cstop offset=\"1\" stop-color=\"#22b1fd\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg id=\"正稿\"\u003e\u003cg id=\"编组\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"编组-2\"\u003e\u003cg id=\"编组备份\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/LocalObject.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/LocalObject.json new file mode 100644 index 00000000000..8ec64d00ac8 --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/LocalObject.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "LocalObject", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"hostname\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"instance_id\": {\n \"type\": \"integer\"\n },\n \"metadata\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"signature\": {\n \"type\": \"string\"\n },\n \"typename\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostname\",\n \"id\",\n \"signature\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Local Object\",\n \"type\": \"object\"\n}", + "version": "k8s.v6d.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Local Object", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#35eed7\"/\u003e\u003cstop offset=\"1\" stop-color=\"#22b1fd\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg id=\"正稿\"\u003e\u003cg id=\"编组\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"编组-2\"\u003e\u003cg id=\"编组备份\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Operation.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Operation.json new file mode 100644 index 00000000000..6132c0d4f69 --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Operation.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Operation", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"require\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"type\": \"string\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Operation\",\n \"type\": \"object\"\n}", + "version": "k8s.v6d.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Operation", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#35eed7\"/\u003e\u003cstop offset=\"1\" stop-color=\"#22b1fd\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg id=\"正稿\"\u003e\u003cg id=\"编组\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"编组-2\"\u003e\u003cg id=\"编组备份\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Recover.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Recover.json new file mode 100644 index 00000000000..7574e2f21b0 --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Recover.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Recover", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"backupName\": {\n \"type\": \"string\"\n },\n \"backupNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Recover\",\n \"type\": \"object\"\n}", + "version": "k8s.v6d.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Recover", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#35eed7\"/\u003e\u003cstop offset=\"1\" stop-color=\"#22b1fd\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg id=\"正稿\"\u003e\u003cg id=\"编组\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"编组-2\"\u003e\u003cg id=\"编组备份\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Sidecar.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Sidecar.json new file mode 100644 index 00000000000..e414ea1a436 --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Sidecar.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Sidecar", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"etcdReplicas\": {\n \"default\": 1,\n \"type\": \"integer\"\n },\n \"metric\": {\n \"default\": {\n \"enable\": false,\n \"image\": \"vineyardcloudnative/vineyard-grok-exporter:latest\",\n \"imagePullPolicy\": \"IfNotPresent\"\n },\n \"properties\": {\n \"enable\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"image\": {\n \"default\": \"vineyardcloudnative/vineyard-grok-exporter:latest\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"default\": 0,\n \"type\": \"integer\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"service\": {\n \"default\": {\n \"port\": 9600,\n \"type\": \"ClusterIP\"\n },\n \"properties\": {\n \"port\": {\n \"default\": 9600,\n \"type\": \"integer\"\n },\n \"type\": {\n \"default\": \"ClusterIP\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vineyard\": {\n \"default\": {\n \"image\": \"vineyardcloudnative/vineyardd:latest\",\n \"imagePullPolicy\": \"IfNotPresent\",\n \"size\": \"\",\n \"socket\": \"/var/run/vineyard-kubernetes/{{.Namespace}}/{{.Name}}\",\n \"streamThreshold\": 80,\n \"syncCRDs\": true\n },\n \"properties\": {\n \"cpu\": {\n \"type\": \"string\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"default\": \"vineyardcloudnative/vineyardd:latest\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"type\": \"string\"\n },\n \"memory\": {\n \"type\": \"string\"\n },\n \"reserveMemory\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"size\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"socket\": {\n \"default\": \"/var/run/vineyard-kubernetes/{{.Namespace}}/{{.Name}}\",\n \"type\": \"string\"\n },\n \"spill\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"path\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaimSpec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeSpec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"secretNamespace\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"claimRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"controllerExpandSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"controllerPublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeStageSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"volumeHandle\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"driver\",\n \"volumeHandle\"\n ],\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"endpointsNamespace\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"local\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"mountOptions\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"nodeAffinity\": {\n \"properties\": {\n \"required\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeReclaimPolicy\": {\n \"type\": \"string\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"spillLowerRate\": {\n \"default\": \"0.3\",\n \"type\": \"string\"\n },\n \"spillUpperRate\": {\n \"default\": \"0.8\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"streamThreshold\": {\n \"default\": 80,\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"syncCRDs\": {\n \"default\": true,\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"volume\": {\n \"properties\": {\n \"mountPath\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"pvcName\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"sources\"\n ],\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Sidecar\",\n \"type\": \"object\"\n}", + "version": "k8s.v6d.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Sidecar", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#35eed7\"/\u003e\u003cstop offset=\"1\" stop-color=\"#22b1fd\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg id=\"正稿\"\u003e\u003cg id=\"编组\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"编组-2\"\u003e\u003cg id=\"编组备份\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Vineyardd.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Vineyardd.json new file mode 100644 index 00000000000..d641c50ec21 --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/components/Vineyardd.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Vineyardd", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"etcdReplicas\": {\n \"default\": 1,\n \"type\": \"integer\"\n },\n \"metric\": {\n \"default\": {\n \"enable\": false,\n \"image\": \"vineyardcloudnative/vineyard-grok-exporter:latest\",\n \"imagePullPolicy\": \"IfNotPresent\"\n },\n \"properties\": {\n \"enable\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"image\": {\n \"default\": \"vineyardcloudnative/vineyard-grok-exporter:latest\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"pluginImage\": {\n \"default\": {\n \"backupImage\": \"ghcr.io/v6d-io/v6d/backup-job\",\n \"daskRepartitionImage\": \"ghcr.io/v6d-io/v6d/dask-repartition\",\n \"distributedAssemblyImage\": \"ghcr.io/v6d-io/v6d/distributed-assembly\",\n \"localAssemblyImage\": \"ghcr.io/v6d-io/v6d/local-assembly\",\n \"recoverImage\": \"ghcr.io/v6d-io/v6d/recover-job\"\n },\n \"properties\": {\n \"backupImage\": {\n \"default\": \"ghcr.io/v6d-io/v6d/backup-job\",\n \"type\": \"string\"\n },\n \"daskRepartitionImage\": {\n \"default\": \"ghcr.io/v6d-io/v6d/dask-repartition\",\n \"type\": \"string\"\n },\n \"distributedAssemblyImage\": {\n \"default\": \"ghcr.io/v6d-io/v6d/distributed-assembly\",\n \"type\": \"string\"\n },\n \"localAssemblyImage\": {\n \"default\": \"ghcr.io/v6d-io/v6d/local-assembly\",\n \"type\": \"string\"\n },\n \"recoverImage\": {\n \"default\": \"ghcr.io/v6d-io/v6d/recover-job\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"replicas\": {\n \"default\": 3,\n \"type\": \"integer\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"service\": {\n \"default\": {\n \"port\": 9600,\n \"type\": \"ClusterIP\"\n },\n \"properties\": {\n \"port\": {\n \"default\": 9600,\n \"type\": \"integer\"\n },\n \"type\": {\n \"default\": \"ClusterIP\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vineyard\": {\n \"default\": {\n \"image\": \"vineyardcloudnative/vineyardd:latest\",\n \"imagePullPolicy\": \"IfNotPresent\",\n \"size\": \"\",\n \"socket\": \"/var/run/vineyard-kubernetes/{{.Namespace}}/{{.Name}}\",\n \"streamThreshold\": 80,\n \"syncCRDs\": true\n },\n \"properties\": {\n \"cpu\": {\n \"type\": \"string\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"default\": \"vineyardcloudnative/vineyardd:latest\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"default\": \"IfNotPresent\",\n \"type\": \"string\"\n },\n \"memory\": {\n \"type\": \"string\"\n },\n \"reserveMemory\": {\n \"default\": false,\n \"type\": \"boolean\"\n },\n \"size\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"socket\": {\n \"default\": \"/var/run/vineyard-kubernetes/{{.Namespace}}/{{.Name}}\",\n \"type\": \"string\"\n },\n \"spill\": {\n \"properties\": {\n \"name\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"path\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"persistentVolumeClaimSpec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeSpec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"secretNamespace\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"claimRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"controllerExpandSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"controllerPublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeStageSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"volumeHandle\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"driver\",\n \"volumeHandle\"\n ],\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"endpointsNamespace\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"local\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"mountOptions\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"nodeAffinity\": {\n \"properties\": {\n \"required\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"persistentVolumeReclaimPolicy\": {\n \"type\": \"string\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"resourceVersion\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"spillLowerRate\": {\n \"default\": \"0.3\",\n \"type\": \"string\"\n },\n \"spillUpperRate\": {\n \"default\": \"0.8\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"streamThreshold\": {\n \"default\": 80,\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"syncCRDs\": {\n \"default\": true,\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"volume\": {\n \"default\": {\n \"mountPath\": \"\",\n \"pvcName\": \"\"\n },\n \"properties\": {\n \"mountPath\": {\n \"default\": \"\",\n \"type\": \"string\"\n },\n \"pvcName\": {\n \"default\": \"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"sources\"\n ],\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Vineyardd\",\n \"type\": \"object\"\n}", + "version": "k8s.v6d.io/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Vineyardd", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases" + }, + "model": { + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "source_uri": "git://github.com/v6d-io/v6d/main/k8s/config/crd/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "svgColor": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#35eed7\"/\u003e\u003cstop offset=\"1\" stop-color=\"#22b1fd\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg id=\"正稿\"\u003e\u003cg id=\"编组\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgWhite": "\u003csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 576\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg id=\"编组-2\"\u003e\u003cg id=\"编组备份\"\u003e\u003cpath id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"/\u003e\u003cpath id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"/\u003e\u003cpath id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"/\u003e\u003cpath id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/vineyard/v0.24.1/v1.0.0/model.json b/server/meshmodel/vineyard/v0.24.1/v1.0.0/model.json new file mode 100644 index 00000000000..8c3691b1672 --- /dev/null +++ b/server/meshmodel/vineyard/v0.24.1/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Runtime" + }, + "displayName": "Vineyard", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#2384f1", + "secondaryColor": "#3990f2", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#2380f2;}.cls-2{fill:#30e0df;}.cls-3{fill:url(#未命名的渐变);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变\" x1=\"-598.82068\" y1=\"30.58735\" x2=\"-598.82068\" y2=\"27.72976\" gradientTransform=\"matrix(54.12373, 0, 0, -172.99139, 32499.13428, 5332.32946)\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#35eed7\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#22b1fd\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"正稿\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M426.57318,268.07554l-.49873.21028A214.92961,214.92961,0,0,0,377.388,296.94744c-51.47433,40.62945-81.2012,104.36467-81.2999,196.22946q-.02378,22.38263,1.88707,42.144h-68.7577q-1.733-20.27023-1.7122-42.21728c.12142-112.45435,39.14463-196.12117,107.39138-249.98937A285.65158,285.65158,0,0,1,408.51007,201.374Q420.83352,231.2059,426.57318,268.07554Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M240.93685,243.11423c68.24675,53.8682,107.27,137.535,107.39138,249.98937q.02283,21.94251-1.7122,42.21728h-68.7577q1.91543-19.77132,1.88707-42.144c-.0987-91.86479-29.82557-155.6-81.2999-196.22946a214.04937,214.04937,0,0,0-46.04681-27.51494q6.91446-36.59784,20.11145-65.98987A284.45232,284.45232,0,0,1,240.93685,243.11423Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-3\" d=\"M111.23333,40.98064l54.82658,45.70592C68.28913,179.24247,66.409,379.09983,105.001,535.31983H36.40107C-7.00852,380.02391-.93753,157.32034,111.23333,40.98064Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.52417,39.63568c113.4296,115.96149,119.71591,339.789,76.138,495.6872H473.06111c38.7651-156.91214,36.69721-357.857-62.367-449.86432Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 576 576\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#ccc;}.cls-2{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组-2\"\u003e\u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"编组备份\"\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径\" class=\"cls-1\" d=\"M427.03534,267.999l-.49828.21009a214.731,214.731,0,0,0-48.64139,28.63512c-51.42673,40.59189-81.12612,104.26817-81.22473,196.048q-.02374,22.36192,1.88532,42.105H229.86214q-1.73144-20.2515-1.71061-42.17824c.1213-112.35038,39.10843-195.93984,107.29208-249.75823a285.38747,285.38747,0,0,1,73.54532-41.70162Q421.301,231.16346,427.03534,267.999Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-2\" data-name=\"路径\" class=\"cls-2\" d=\"M241.57064,243.06078C309.75429,296.87917,348.74143,380.46863,348.86273,492.819q.0228,21.92221-1.71062,42.17824H278.458q1.91366-19.75305,1.88532-42.105c-.0986-91.77986-29.798-155.45614-81.22472-196.048a213.85173,213.85173,0,0,0-46.00424-27.4895q6.90805-36.564,20.09285-65.92886A284.18909,284.18909,0,0,1,241.57064,243.06078Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-3\" data-name=\"路径\" class=\"cls-2\" d=\"M111.98705,41.11407l54.77588,45.66367c-97.68037,92.47033-99.55874,292.1429-61.00248,448.21846H37.224C-6.14547,379.84387-.08009,157.34621,111.98705,41.11407Z\"\u003e\u003c/path\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" id=\"路径-4\" data-name=\"路径\" class=\"cls-1\" d=\"M465.95031,39.77036C579.275,155.62464,585.55553,379.24516,542.018,534.99925H473.48028c38.72926-156.76706,36.66328-357.5261-62.30932-449.44838Z\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\n" + }, + "model": { + "version": "v0.24.1" + }, + "name": "vineyard", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Cloud Native Storage", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Command.json b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Command.json new file mode 100644 index 00000000000..d579428f3da --- /dev/null +++ b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Command.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Command", + "schema": "{\n \"description\": \"Command defines command structure.\",\n \"properties\": {\n \"action\": {\n \"description\": \"Action defines the action that will be took to the target object.\",\n \"type\": \"string\"\n },\n \"message\": {\n \"description\": \"Human-readable message indicating details of this command.\",\n \"type\": \"string\"\n },\n \"reason\": {\n \"description\": \"Unique, one-word, CamelCase reason for this command.\",\n \"type\": \"string\"\n },\n \"target\": {\n \"description\": \"TargetObject defines the target object of this command.\",\n \"properties\": {\n \"apiVersion\": {\n \"description\": \"API version of the referent.\",\n \"type\": \"string\"\n },\n \"blockOwnerDeletion\": {\n \"description\": \"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\n \"type\": \"boolean\"\n },\n \"controller\": {\n \"description\": \"If true, this reference points to the managing controller.\",\n \"type\": \"boolean\"\n },\n \"kind\": {\n \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\",\n \"type\": \"string\"\n },\n \"uid\": {\n \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiVersion\",\n \"kind\",\n \"name\",\n \"uid\"\n ],\n \"type\": \"object\"\n }\n },\n \"title\": \"Command\",\n \"type\": \"object\"\n}", + "version": "bus.volcano.sh/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Command", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Volcano", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#eb5520\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.24727\" stop-color=\"#eb511f\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.50344\" stop-color=\"#eb441d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.76272\" stop-color=\"#eb301a\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#eb1616\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-color\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-white\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.0" + }, + "name": "volcano", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#eb5520\"/\u003e\u003cstop offset=\"0.24727\" stop-color=\"#eb511f\"/\u003e\u003cstop offset=\"0.50344\" stop-color=\"#eb441d\"/\u003e\u003cstop offset=\"0.76272\" stop-color=\"#eb301a\"/\u003e\u003cstop offset=\"1\" stop-color=\"#eb1616\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-color\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-white\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Job.json b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Job.json new file mode 100644 index 00000000000..f6d9f7b7ca8 --- /dev/null +++ b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Job.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Job", + "schema": "{\n \"properties\": {\n \"spec\": {\n \"properties\": {\n \"maxRetry\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minSuccess\": {\n \"format\": \"int32\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"plugins\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"type\": \"object\"\n },\n \"policies\": {\n \"items\": {\n \"properties\": {\n \"action\": {\n \"type\": \"string\"\n },\n \"event\": {\n \"type\": \"string\"\n },\n \"events\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"exitCode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"timeout\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"queue\": {\n \"type\": \"string\"\n },\n \"runningEstimate\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"tasks\": {\n \"items\": {\n \"properties\": {\n \"dependsOn\": {\n \"properties\": {\n \"iteration\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"maxRetry\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minAvailable\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"policies\": {\n \"items\": {\n \"properties\": {\n \"action\": {\n \"type\": \"string\"\n },\n \"event\": {\n \"type\": \"string\"\n },\n \"events\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"exitCode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"timeout\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"replicas\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"template\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"activeDeadlineSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"affinity\": {\n \"properties\": {\n \"nodeAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"preference\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"preference\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"properties\": {\n \"nodeSelectorTerms\": {\n \"items\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchFields\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"nodeSelectorTerms\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"podAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"podAntiAffinity\": {\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"podAffinityTerm\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"podAffinityTerm\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"mismatchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"namespaceSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"namespaces\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"topologyKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"type\": \"boolean\"\n },\n \"containers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"properties\": {\n \"seconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"properties\": {\n \"seconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"items\": {\n \"properties\": {\n \"resourceName\": {\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsConfig\": {\n \"properties\": {\n \"nameservers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"options\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"searches\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"type\": \"string\"\n },\n \"enableServiceLinks\": {\n \"type\": \"boolean\"\n },\n \"ephemeralContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"properties\": {\n \"seconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"properties\": {\n \"seconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"items\": {\n \"properties\": {\n \"resourceName\": {\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"targetContainerName\": {\n \"type\": \"string\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostAliases\": {\n \"items\": {\n \"properties\": {\n \"hostnames\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"ip\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hostIPC\": {\n \"type\": \"boolean\"\n },\n \"hostNetwork\": {\n \"type\": \"boolean\"\n },\n \"hostPID\": {\n \"type\": \"boolean\"\n },\n \"hostUsers\": {\n \"type\": \"boolean\"\n },\n \"hostname\": {\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"items\": {\n \"properties\": {\n \"args\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"env\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"valueFrom\": {\n \"properties\": {\n \"configMapKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n },\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"secretKeyRef\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"key\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"envFrom\": {\n \"items\": {\n \"properties\": {\n \"configMapRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"type\": \"string\"\n },\n \"lifecycle\": {\n \"properties\": {\n \"postStart\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"properties\": {\n \"seconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"preStop\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"sleep\": {\n \"properties\": {\n \"seconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"seconds\"\n ],\n \"type\": \"object\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"livenessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"ports\": {\n \"items\": {\n \"properties\": {\n \"containerPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"hostIP\": {\n \"type\": \"string\"\n },\n \"hostPort\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"default\": \"TCP\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"containerPort\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"containerPort\",\n \"protocol\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"readinessProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"resizePolicy\": {\n \"items\": {\n \"properties\": {\n \"resourceName\": {\n \"type\": \"string\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resourceName\",\n \"restartPolicy\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"resources\": {\n \"properties\": {\n \"claims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"securityContext\": {\n \"properties\": {\n \"allowPrivilegeEscalation\": {\n \"type\": \"boolean\"\n },\n \"capabilities\": {\n \"properties\": {\n \"add\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"drop\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"privileged\": {\n \"type\": \"boolean\"\n },\n \"procMount\": {\n \"type\": \"string\"\n },\n \"readOnlyRootFilesystem\": {\n \"type\": \"boolean\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"startupProbe\": {\n \"properties\": {\n \"exec\": {\n \"properties\": {\n \"command\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"failureThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"grpc\": {\n \"properties\": {\n \"port\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"service\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"httpGet\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"httpHeaders\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n },\n \"scheme\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"initialDelaySeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"periodSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"successThreshold\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tcpSocket\": {\n \"properties\": {\n \"host\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"required\": [\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"timeoutSeconds\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"stdin\": {\n \"type\": \"boolean\"\n },\n \"stdinOnce\": {\n \"type\": \"boolean\"\n },\n \"terminationMessagePath\": {\n \"type\": \"string\"\n },\n \"terminationMessagePolicy\": {\n \"type\": \"string\"\n },\n \"tty\": {\n \"type\": \"boolean\"\n },\n \"volumeDevices\": {\n \"items\": {\n \"properties\": {\n \"devicePath\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"devicePath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"volumeMounts\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"mountPropagation\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"subPath\": {\n \"type\": \"string\"\n },\n \"subPathExpr\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"workingDir\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"nodeName\": {\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"os\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"overhead\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"preemptionPolicy\": {\n \"type\": \"string\"\n },\n \"priority\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"priorityClassName\": {\n \"type\": \"string\"\n },\n \"readinessGates\": {\n \"items\": {\n \"properties\": {\n \"conditionType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"conditionType\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"resourceClaims\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"properties\": {\n \"resourceClaimName\": {\n \"type\": \"string\"\n },\n \"resourceClaimTemplateName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"restartPolicy\": {\n \"type\": \"string\"\n },\n \"runtimeClassName\": {\n \"type\": \"string\"\n },\n \"schedulerName\": {\n \"type\": \"string\"\n },\n \"schedulingGates\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"name\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"securityContext\": {\n \"properties\": {\n \"fsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"fsGroupChangePolicy\": {\n \"type\": \"string\"\n },\n \"runAsGroup\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"runAsNonRoot\": {\n \"type\": \"boolean\"\n },\n \"runAsUser\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"seLinuxOptions\": {\n \"properties\": {\n \"level\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"seccompProfile\": {\n \"properties\": {\n \"localhostProfile\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"supplementalGroups\": {\n \"items\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n },\n \"sysctls\": {\n \"items\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"windowsOptions\": {\n \"properties\": {\n \"gmsaCredentialSpec\": {\n \"type\": \"string\"\n },\n \"gmsaCredentialSpecName\": {\n \"type\": \"string\"\n },\n \"hostProcess\": {\n \"type\": \"boolean\"\n },\n \"runAsUserName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccount\": {\n \"type\": \"string\"\n },\n \"serviceAccountName\": {\n \"type\": \"string\"\n },\n \"setHostnameAsFQDN\": {\n \"type\": \"boolean\"\n },\n \"shareProcessNamespace\": {\n \"type\": \"boolean\"\n },\n \"subdomain\": {\n \"type\": \"string\"\n },\n \"terminationGracePeriodSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"items\": {\n \"properties\": {\n \"effect\": {\n \"type\": \"string\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"tolerationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"topologySpreadConstraints\": {\n \"items\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"matchLabelKeys\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"atomic\"\n },\n \"maxSkew\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minDomains\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeAffinityPolicy\": {\n \"type\": \"string\"\n },\n \"nodeTaintsPolicy\": {\n \"type\": \"string\"\n },\n \"topologyKey\": {\n \"type\": \"string\"\n },\n \"whenUnsatisfiable\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"maxSkew\",\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"topologyKey\",\n \"whenUnsatisfiable\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"awsElasticBlockStore\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"azureDisk\": {\n \"properties\": {\n \"cachingMode\": {\n \"type\": \"string\"\n },\n \"diskName\": {\n \"type\": \"string\"\n },\n \"diskURI\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"diskName\",\n \"diskURI\"\n ],\n \"type\": \"object\"\n },\n \"azureFile\": {\n \"properties\": {\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n },\n \"shareName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"secretName\",\n \"shareName\"\n ],\n \"type\": \"object\"\n },\n \"cephfs\": {\n \"properties\": {\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretFile\": {\n \"type\": \"string\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"cinder\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"csi\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"nodePublishSecretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeAttributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"emptyDir\": {\n \"properties\": {\n \"medium\": {\n \"type\": \"string\"\n },\n \"sizeLimit\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n }\n },\n \"type\": \"object\"\n },\n \"ephemeral\": {\n \"properties\": {\n \"volumeClaimTemplate\": {\n \"properties\": {\n \"metadata\": {\n \"properties\": {\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"finalizers\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"fc\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"targetWWNs\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"wwids\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"flexVolume\": {\n \"properties\": {\n \"driver\": {\n \"type\": \"string\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"driver\"\n ],\n \"type\": \"object\"\n },\n \"flocker\": {\n \"properties\": {\n \"datasetName\": {\n \"type\": \"string\"\n },\n \"datasetUUID\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"gcePersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"partition\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"pdName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"pdName\"\n ],\n \"type\": \"object\"\n },\n \"gitRepo\": {\n \"properties\": {\n \"directory\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\"\n },\n \"revision\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"repository\"\n ],\n \"type\": \"object\"\n },\n \"glusterfs\": {\n \"properties\": {\n \"endpoints\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"hostPath\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"iscsi\": {\n \"properties\": {\n \"chapAuthDiscovery\": {\n \"type\": \"boolean\"\n },\n \"chapAuthSession\": {\n \"type\": \"boolean\"\n },\n \"fsType\": {\n \"type\": \"string\"\n },\n \"initiatorName\": {\n \"type\": \"string\"\n },\n \"iqn\": {\n \"type\": \"string\"\n },\n \"iscsiInterface\": {\n \"type\": \"string\"\n },\n \"lun\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"portals\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"targetPortal\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"iqn\",\n \"lun\",\n \"targetPortal\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"nfs\": {\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"server\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\",\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"persistentVolumeClaim\": {\n \"properties\": {\n \"claimName\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"claimName\"\n ],\n \"type\": \"object\"\n },\n \"photonPersistentDisk\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"pdID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"pdID\"\n ],\n \"type\": \"object\"\n },\n \"portworxVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"volumeID\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumeID\"\n ],\n \"type\": \"object\"\n },\n \"projected\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"sources\": {\n \"items\": {\n \"properties\": {\n \"clusterTrustBundle\": {\n \"properties\": {\n \"labelSelector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"signerName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"configMap\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"downwardAPI\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"fieldRef\": {\n \"properties\": {\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"fieldPath\"\n ],\n \"type\": \"object\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"resourceFieldRef\": {\n \"properties\": {\n \"containerName\": {\n \"type\": \"string\"\n },\n \"divisor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"resource\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"resource\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"serviceAccountToken\": {\n \"properties\": {\n \"audience\": {\n \"type\": \"string\"\n },\n \"expirationSeconds\": {\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"quobyte\": {\n \"properties\": {\n \"group\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"registry\": {\n \"type\": \"string\"\n },\n \"tenant\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"registry\",\n \"volume\"\n ],\n \"type\": \"object\"\n },\n \"rbd\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"keyring\": {\n \"type\": \"string\"\n },\n \"monitors\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pool\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"user\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"image\",\n \"monitors\"\n ],\n \"type\": \"object\"\n },\n \"scaleIO\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"gateway\": {\n \"type\": \"string\"\n },\n \"protectionDomain\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"sslEnabled\": {\n \"type\": \"boolean\"\n },\n \"storageMode\": {\n \"type\": \"string\"\n },\n \"storagePool\": {\n \"type\": \"string\"\n },\n \"system\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gateway\",\n \"secretRef\",\n \"system\"\n ],\n \"type\": \"object\"\n },\n \"secret\": {\n \"properties\": {\n \"defaultMode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"path\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"secretName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"storageos\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n },\n \"secretRef\": {\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n },\n \"volumeNamespace\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"vsphereVolume\": {\n \"properties\": {\n \"fsType\": {\n \"type\": \"string\"\n },\n \"storagePolicyID\": {\n \"type\": \"string\"\n },\n \"storagePolicyName\": {\n \"type\": \"string\"\n },\n \"volumePath\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"volumePath\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"containers\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"topologyPolicy\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ttlSecondsAfterFinished\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"volumes\": {\n \"items\": {\n \"properties\": {\n \"mountPath\": {\n \"type\": \"string\"\n },\n \"volumeClaim\": {\n \"properties\": {\n \"accessModes\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"dataSource\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"dataSourceRef\": {\n \"properties\": {\n \"apiGroup\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"resources\": {\n \"properties\": {\n \"limits\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n },\n \"requests\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"selector\": {\n \"properties\": {\n \"matchExpressions\": {\n \"items\": {\n \"properties\": {\n \"key\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"key\",\n \"operator\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matchLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"storageClassName\": {\n \"type\": \"string\"\n },\n \"volumeAttributesClassName\": {\n \"type\": \"string\"\n },\n \"volumeMode\": {\n \"type\": \"string\"\n },\n \"volumeName\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"volumeClaimName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"mountPath\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Job\",\n \"type\": \"object\"\n}", + "version": "batch.volcano.sh/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Job", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Volcano", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#eb5520\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.24727\" stop-color=\"#eb511f\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.50344\" stop-color=\"#eb441d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.76272\" stop-color=\"#eb301a\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#eb1616\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-color\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-white\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.0" + }, + "name": "volcano", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#eb5520\"/\u003e\u003cstop offset=\"0.24727\" stop-color=\"#eb511f\"/\u003e\u003cstop offset=\"0.50344\" stop-color=\"#eb441d\"/\u003e\u003cstop offset=\"0.76272\" stop-color=\"#eb301a\"/\u003e\u003cstop offset=\"1\" stop-color=\"#eb1616\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-color\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-white\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Numatopology.json b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Numatopology.json new file mode 100644 index 00000000000..14f9544bdc5 --- /dev/null +++ b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Numatopology.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Numatopology", + "schema": "{\n \"description\": \"Numatopology is the Schema for the Numatopologies API\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the numa information of the worker node\",\n \"properties\": {\n \"cpuDetail\": {\n \"additionalProperties\": {\n \"description\": \"CPUInfo is the cpu topology detail\",\n \"properties\": {\n \"core\": {\n \"type\": \"integer\"\n },\n \"numa\": {\n \"type\": \"integer\"\n },\n \"socket\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Specifies the cpu topology info Key is cpu id\",\n \"type\": \"object\"\n },\n \"numares\": {\n \"additionalProperties\": {\n \"description\": \"ResourceInfo is the sets about resource capacity and allocatable\",\n \"properties\": {\n \"allocatable\": {\n \"type\": \"string\"\n },\n \"capacity\": {\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"description\": \"Specifies the numa info for the resource Key is resource name\",\n \"type\": \"object\"\n },\n \"policies\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Specifies the policy of the manager\",\n \"type\": \"object\"\n },\n \"resReserved\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Specifies the reserved resource of the node Key is resource name\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Numatopology\",\n \"type\": \"object\"\n}", + "version": "nodeinfo.volcano.sh/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Numatopology", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Volcano", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#eb5520\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.24727\" stop-color=\"#eb511f\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.50344\" stop-color=\"#eb441d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.76272\" stop-color=\"#eb301a\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#eb1616\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-color\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-white\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.0" + }, + "name": "volcano", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#eb5520\"/\u003e\u003cstop offset=\"0.24727\" stop-color=\"#eb511f\"/\u003e\u003cstop offset=\"0.50344\" stop-color=\"#eb441d\"/\u003e\u003cstop offset=\"0.76272\" stop-color=\"#eb301a\"/\u003e\u003cstop offset=\"1\" stop-color=\"#eb1616\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-color\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-white\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/volcano/v1.9.0/v1.0.0/components/PodGroup.json b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/PodGroup.json new file mode 100644 index 00000000000..d0468f68418 --- /dev/null +++ b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/PodGroup.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "PodGroup", + "schema": "{\n \"description\": \"PodGroup is a collection of Pod; used for batch workload.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the pod group. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"minMember\": {\n \"description\": \"MinMember defines the minimal number of members/tasks to run the pod group; if there's not enough resources to start all tasks, the scheduler will not start anyone.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"minResources\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"MinResources defines the minimal resource of members/tasks to run the pod group; if there's not enough resources to start all tasks, the scheduler will not start anyone.\",\n \"type\": \"object\"\n },\n \"minTaskMember\": {\n \"additionalProperties\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"description\": \"MinTaskMember defines the minimal number of pods to run each task in the pod group; if there's not enough resources to start each task, the scheduler will not start anyone.\",\n \"type\": \"object\"\n },\n \"priorityClassName\": {\n \"description\": \"If specified, indicates the PodGroup's priority. \\\"system-node-critical\\\" and \\\"system-cluster-critical\\\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the PodGroup priority will be default or zero if there is no default.\",\n \"type\": \"string\"\n },\n \"queue\": {\n \"description\": \"Queue defines the queue to allocate resource for PodGroup; if queue does not exist, the PodGroup will not be scheduled. Defaults to `default` Queue with the lowest weight.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Pod Group\",\n \"type\": \"object\"\n}", + "version": "scheduling.volcano.sh/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Pod Group", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Volcano", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#eb5520\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.24727\" stop-color=\"#eb511f\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.50344\" stop-color=\"#eb441d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.76272\" stop-color=\"#eb301a\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#eb1616\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-color\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-white\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.0" + }, + "name": "volcano", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#eb5520\"/\u003e\u003cstop offset=\"0.24727\" stop-color=\"#eb511f\"/\u003e\u003cstop offset=\"0.50344\" stop-color=\"#eb441d\"/\u003e\u003cstop offset=\"0.76272\" stop-color=\"#eb301a\"/\u003e\u003cstop offset=\"1\" stop-color=\"#eb1616\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-color\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-white\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Queue.json b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Queue.json new file mode 100644 index 00000000000..79bdb0ae49a --- /dev/null +++ b/server/meshmodel/volcano/v1.9.0/v1.0.0/components/Queue.json @@ -0,0 +1,72 @@ +{ + "capabilities": null, + "component": { + "kind": "Queue", + "schema": "{\n \"description\": \"Queue is a queue of PodGroup.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the queue. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"affinity\": {\n \"description\": \"If specified, the pod owned by the queue will be scheduled with constraint\",\n \"properties\": {\n \"nodeGroupAffinity\": {\n \"description\": \"Describes nodegroup affinity scheduling rules for the queue(e.g. putting pods of the queue in the nodes of the nodegroup)\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"nodeGroupAntiAffinity\": {\n \"description\": \"Describes nodegroup anti-affinity scheduling rules for the queue(e.g. avoid putting pods of the queue in the nodes of the nodegroup).\",\n \"properties\": {\n \"preferredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"capability\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"ResourceList is a set of (resource name, quantity) pairs.\",\n \"type\": \"object\"\n },\n \"deserved\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"The amount of resources configured by the user. This part of resource can be shared with other queues and reclaimed back.\",\n \"type\": \"object\"\n },\n \"extendClusters\": {\n \"description\": \"extendCluster indicate the jobs in this Queue will be dispatched to these clusters.\",\n \"items\": {\n \"description\": \"CluterSpec represents the template of Cluster\",\n \"properties\": {\n \"capacity\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"ResourceList is a set of (resource name, quantity) pairs.\",\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"guarantee\": {\n \"description\": \"Guarantee indicate configuration about resource reservation\",\n \"properties\": {\n \"resource\": {\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"description\": \"The amount of cluster resource reserved for queue. Just set either `percentage` or `resource`\",\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"parent\": {\n \"description\": \"Parent define the parent of queue\",\n \"type\": \"string\"\n },\n \"reclaimable\": {\n \"description\": \"Reclaimable indicate whether the queue can be reclaimed by other queue\",\n \"type\": \"boolean\"\n },\n \"type\": {\n \"description\": \"Type define the type of queue\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"format\": \"int32\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"title\": \"Queue\",\n \"type\": \"object\"\n}", + "version": "scheduling.volcano.sh/v1beta1" + }, + "configuration": null, + "description": "", + "displayName": "Queue", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": false, + "published": false, + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases" + }, + "model": { + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Volcano", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "source_uri": "git://github.com/volcano-sh/volcano/master/config/crd/volcano/bases", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#eb5520\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.24727\" stop-color=\"#eb511f\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.50344\" stop-color=\"#eb441d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.76272\" stop-color=\"#eb301a\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#eb1616\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-color\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-white\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.0" + }, + "name": "volcano", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "ignored", + "styles": { + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "svgColor": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop offset=\"0\" stop-color=\"#eb5520\"/\u003e\u003cstop offset=\"0.24727\" stop-color=\"#eb511f\"/\u003e\u003cstop offset=\"0.50344\" stop-color=\"#eb441d\"/\u003e\u003cstop offset=\"0.76272\" stop-color=\"#eb301a\"/\u003e\u003cstop offset=\"1\" stop-color=\"#eb1616\"/\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-color\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e", + "svgWhite": "\u003csvg id=\"图层_1\" data-name=\"图层 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 360 360\"\u003e\u003cdefs\u003e\u003cstyle\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle\u003evolcano-icon-white\u003c/title\u003e\u003cpath class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"/\u003e\u003c/svg\u003e" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/volcano/v1.9.0/v1.0.0/model.json b/server/meshmodel/volcano/v1.9.0/v1.0.0/model.json new file mode 100644 index 00000000000..a48d92c277e --- /dev/null +++ b/server/meshmodel/volcano/v1.9.0/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Orchestration \u0026 Management" + }, + "displayName": "Volcano", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#eb2318", + "secondaryColor": "#FF685D", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:url(#未命名的渐变_48);}\u003c/style\u003e\u003clinearGradient xmlns=\"http://www.w3.org/2000/svg\" id=\"未命名的渐变_48\" x1=\"180.83333\" y1=\"261.2186\" x2=\"180.83333\" y2=\"90.33333\" gradientUnits=\"userSpaceOnUse\"\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0\" stop-color=\"#eb5520\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.24727\" stop-color=\"#eb511f\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.50344\" stop-color=\"#eb441d\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"0.76272\" stop-color=\"#eb301a\"\u003e\u003c/stop\u003e\u003cstop xmlns=\"http://www.w3.org/2000/svg\" offset=\"1\" stop-color=\"#eb1616\"\u003e\u003c/stop\u003e\u003c/linearGradient\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-color\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" id=\"图层_1\" data-name=\"图层 1\" viewBox=\"0 0 360 360\" height=\"20\" width=\"20\"\u003e\u003cdefs xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cstyle xmlns=\"http://www.w3.org/2000/svg\"\u003e.cls-1{fill:#fff;}\u003c/style\u003e\u003c/defs\u003e\u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003evolcano-icon-white\u003c/title\u003e\u003cpath xmlns=\"http://www.w3.org/2000/svg\" class=\"cls-1\" d=\"M152.60633,137.27455,130.13278,114.801a1.16728,1.16728,0,0,1,0-1.65075l22.47569-22.47569a1.16417,1.16417,0,0,1,1.6469,0l22.47569,22.47569a1.16715,1.16715,0,0,1,0,1.65075l-22.47355,22.47355A1.167,1.167,0,0,1,152.60633,137.27455Zm-5.95834,3.27459-19.7898-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.16959,1.16959,0,0,0,0,1.6546L125.20744,161.997a1.1647,1.1647,0,0,0,1.64734,0L146.648,142.20374A1.17037,1.17037,0,0,0,146.648,140.54914Zm54.80162,0-19.78973-19.7898a1.16992,1.16992,0,0,0-1.65423,0l-19.7898,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.7898,19.78979a1.16992,1.16992,0,0,0,1.65423,0l19.78973-19.78979A1.17037,1.17037,0,0,0,201.44961,140.54914Zm-84.87914,27.40444L99.45418,150.83729a1.16514,1.16514,0,0,0-1.6477,0L80.69055,167.95358a1.16468,1.16468,0,0,0,0,1.64734l17.11593,17.11629a1.16512,1.16512,0,0,0,1.6477,0l17.11629-17.11629A1.16546,1.16546,0,0,0,116.57047,167.95358Zm54.8012,0L154.2558,150.83729a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734L152.608,186.71721a1.16519,1.16519,0,0,0,1.64776,0l17.11587-17.11629A1.1647,1.1647,0,0,0,171.37167,167.95358Zm54.80162,0-17.11586-17.11629a1.16522,1.16522,0,0,0-1.64777,0l-17.1158,17.11629a1.16457,1.16457,0,0,0,0,1.64734l17.1158,17.11629a1.1652,1.1652,0,0,0,1.64777,0l17.11586-17.11629A1.16457,1.16457,0,0,0,226.17329,167.95358ZM86.48911,195.355,72.05272,180.91865a1.16417,1.16417,0,0,0-1.6469,0L55.96949,195.355a1.1638,1.1638,0,0,0,0,1.64605l14.43675,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43639-14.43682A1.16314,1.16314,0,0,0,86.48911,195.355Zm54.802,0-14.43638-14.43639a1.1647,1.1647,0,0,0-1.64734,0L110.77105,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43688,14.43682a1.16437,1.16437,0,0,0,1.64642,0l14.43681-14.43682A1.1639,1.1639,0,0,0,141.29116,195.355Zm54.80163,0L181.656,180.91822a1.16444,1.16444,0,0,0-1.64648,0L165.57268,195.355a1.164,1.164,0,0,0,0,1.64605l14.43681,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43682-14.43682A1.16392,1.16392,0,0,0,196.09279,195.355Zm54.80162,0L236.4576,180.91822a1.16444,1.16444,0,0,0-1.64648,0L220.3743,195.355a1.16392,1.16392,0,0,0,0,1.64605l14.43682,14.43682a1.16444,1.16444,0,0,0,1.64648,0l14.43681-14.43682A1.1639,1.1639,0,0,0,250.89441,195.355ZM56.40561,222.7535,44.65383,211.00172a1.16726,1.16726,0,0,0-1.65075,0L31.2513,222.7535a1.16728,1.16728,0,0,0,0,1.65075L43.00308,236.156a1.16726,1.16726,0,0,0,1.65075,0l11.75178-11.75178A1.16726,1.16726,0,0,0,56.40561,222.7535Zm54.80163,0L99.45589,211.00172a1.16778,1.16778,0,0,0-1.65118,0L86.05293,222.7535a1.16726,1.16726,0,0,0,0,1.65075L97.80471,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16728,1.16728,0,0,0,111.20724,222.7535Zm54.80162,0-11.75135-11.75178a1.16778,1.16778,0,0,0-1.65118,0L140.855,222.7535a1.16648,1.16648,0,0,0,0,1.65075L152.60633,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75135-11.75178A1.16726,1.16726,0,0,0,166.00886,222.7535Zm54.80163,0-11.75136-11.75178a1.16769,1.16769,0,0,0-1.65111,0L195.6566,222.7535a1.16728,1.16728,0,0,0,0,1.65075L207.408,236.156a1.16769,1.16769,0,0,0,1.65111,0l11.75136-11.75178A1.16639,1.16639,0,0,0,220.81049,222.7535Zm54.80211,0-11.75184-11.75178a1.16778,1.16778,0,0,0-1.65118,0L250.45829,222.7535a1.16715,1.16715,0,0,0,0,1.65075L262.20958,236.156a1.16778,1.16778,0,0,0,1.65118,0l11.75184-11.75178A1.16737,1.16737,0,0,0,275.6126,222.7535ZM26.32639,250.15624l-9.07523-9.07487a1.16425,1.16425,0,0,0-1.647,0l-9.07486,9.07487a1.16417,1.16417,0,0,0,0,1.6469l9.07358,9.07358a1.16623,1.16623,0,0,0,1.6499,0l9.07358-9.07358A1.165,1.165,0,0,0,26.32639,250.15624Zm54.80168,0-9.07535-9.07487a1.16417,1.16417,0,0,0-1.6469,0L61.331,250.15624a1.16406,1.16406,0,0,0,0,1.6469l9.07267,9.07273a1.16754,1.16754,0,0,0,1.65161,0l9.07278-9.07273A1.165,1.165,0,0,0,81.12807,250.15624Zm54.80157,0-9.07267-9.07273a1.1676,1.1676,0,0,0-1.65166,0l-9.07059,9.07016a1.16882,1.16882,0,0,0,0,1.652l9.07059,9.07016a1.1676,1.1676,0,0,0,1.65166,0l9.07267-9.07273A1.16417,1.16417,0,0,0,135.92964,250.15624Zm54.79906-.23582-9.07016-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07016-9.07059A1.16753,1.16753,0,0,0,190.7287,249.92042Zm54.80205,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07272,9.0723a1.1647,1.1647,0,0,0,0,1.64734l9.07272,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16829,1.16829,0,0,0,245.53075,249.92042Zm54.80163,0-9.07059-9.07017a1.16754,1.16754,0,0,0-1.65161,0l-9.07273,9.0723a1.16548,1.16548,0,0,0,0,1.64734l9.07273,9.07272a1.1683,1.1683,0,0,0,1.65161,0l9.07059-9.07059A1.16818,1.16818,0,0,0,300.33238,249.92042ZM209.05743,137.27626l22.477-22.477a1.16469,1.16469,0,0,0,0-1.64733l-22.477-22.4774a1.16522,1.16522,0,0,0-1.64777,0l-22.477,22.4774a1.16469,1.16469,0,0,0,0,1.64733l22.477,22.477A1.16522,1.16522,0,0,0,209.05743,137.27626Zm27.404,24.71727,19.78986-19.78979a1.16959,1.16959,0,0,0,0-1.6546l-19.78986-19.7898a1.16985,1.16985,0,0,0-1.65417,0l-19.78979,19.7898a1.17037,1.17037,0,0,0,0,1.6546l19.78979,19.78979A1.16985,1.16985,0,0,0,236.46144,161.99353Zm27.39761,24.72368,17.11587-17.11629a1.1647,1.1647,0,0,0,0-1.64734l-17.11587-17.11629a1.16521,1.16521,0,0,0-1.64776,0l-17.11587,17.11629a1.1647,1.1647,0,0,0,0,1.64734l17.11587,17.11629A1.16519,1.16519,0,0,0,263.85905,186.71721Zm27.40017,24.7207,14.43511-14.43511a1.16639,1.16639,0,0,0,0-1.64947l-14.43511-14.43511a1.16444,1.16444,0,0,0-1.64648,0L275.17636,195.355a1.16313,1.16313,0,0,0,0,1.64605l14.43638,14.43682A1.16444,1.16444,0,0,0,291.25922,211.43791ZM318.66238,236.156l11.75178-11.75178a1.16726,1.16726,0,0,0,0-1.65075l-11.75178-11.75178a1.16726,1.16726,0,0,0-1.65075,0L305.25985,222.7535a1.16739,1.16739,0,0,0,0,1.65075L317.01163,236.156A1.16726,1.16726,0,0,0,318.66238,236.156Zm27.40146,24.48658,9.0745-9.07486a1.162,1.162,0,0,0,0-1.64306l-9.0745-9.07444a1.16806,1.16806,0,0,0-1.652,0l-9.07272,9.0723a1.16546,1.16546,0,0,0,0,1.64734l9.07272,9.07272A1.16882,1.16882,0,0,0,346.06384,260.64261Z\"\u003e\u003c/path\u003e\u003c/svg\u003e" + }, + "model": { + "version": "v1.9.0" + }, + "name": "volcano", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "github", + "name": "Github", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Scheduling \u0026 Orchestration", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/meshmodel/windows/0.5.2/v1.0.0/model.json b/server/meshmodel/windows/0.5.2/v1.0.0/model.json new file mode 100644 index 00000000000..1939377dac4 --- /dev/null +++ b/server/meshmodel/windows/0.5.2/v1.0.0/model.json @@ -0,0 +1,42 @@ +{ + "category": { + "name": "Platform" + }, + "displayName": "Windows", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#00ADEF", + "secondaryColor": "#00D3A9", + "shape": "circle", + "styleOverrides": "", + "svgColor": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 60 60\" fill=\"none\"\u003e\n\u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0 8.45591L24.332 5.14213L24.3427 28.6123L0.0222272 28.7509L0 8.45591ZM24.3204 31.3166L24.3394 54.8072L0.0188863 51.4636L0.0175228 31.1591L24.3204 31.3166ZM27.2701 4.70863L59.5324 0V28.3139L27.2701 28.57V4.70863ZM59.5398 31.5376L59.5322 59.7239L27.27 55.1704L27.2248 31.4848L59.5398 31.5376Z\" fill=\"#00ADEF\"\u003e\u003c/path\u003e\n\u003c/svg\u003e", + "svgComplete": "", + "svgWhite": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003c!DOCTYPE svg\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 60 60\" fill=\"none\"\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M0 8.45591L24.332 5.14213L24.3427 28.6123L0.0222272 28.7509L0 8.45591ZM24.3204 31.3166L24.3394 54.8072L0.0188863 51.4636L0.0175228 31.1591L24.3204 31.3166ZM27.2701 4.70863L59.5324 0V28.3139L27.2701 28.57V4.70863ZM59.5398 31.5376L59.5322 59.7239L27.27 55.1704L27.2248 31.4848L59.5398 31.5376Z\" fill=\"#fff\"\u003e\u003c/path\u003e\n\u003c/svg\u003e" + }, + "model": { + "version": "0.5.2" + }, + "name": "windows", + "registrant": { + "created_at": "0001-01-01T00:00:00Z", + "credential_id": "00000000-0000-0000-0000-000000000000", + "deleted_at": "0001-01-01T00:00:00Z", + "id": "00000000-0000-0000-0000-000000000000", + "kind": "artifacthub", + "name": "Artifact Hub", + "status": "discovered", + "sub_type": "", + "type": "registry", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "models.meshery.io/v1beta1", + "status": "ignored", + "subCategory": "Operating System", + "version": "v1.0.0", + "components": null, + "relationships": null + } \ No newline at end of file diff --git a/server/models/meshsync_events.go b/server/models/meshsync_events.go index 4ee637df4bc..0e7d10e195e 100644 --- a/server/models/meshsync_events.go +++ b/server/models/meshsync_events.go @@ -4,8 +4,10 @@ import ( "github.com/gofrs/uuid" "github.com/layer5io/meshkit/broker" "github.com/layer5io/meshkit/database" + "github.com/layer5io/meshkit/encoding" "github.com/layer5io/meshkit/logger" "github.com/layer5io/meshkit/utils" + meshsyncmodel "github.com/layer5io/meshsync/pkg/model" "github.com/meshery/schemas/models/v1beta1/component" "gorm.io/gorm" @@ -137,7 +139,7 @@ func (mh *MeshsyncDataHandler) subsribeToStoreUpdates(statusChan chan bool) { func (mh *MeshsyncDataHandler) Unmarshal(object interface{}) (meshsyncmodel.KubernetesResource, error) { objectJSON, _ := utils.Marshal(object) obj := meshsyncmodel.KubernetesResource{} - err := utils.Unmarshal(objectJSON, &obj) + err := encoding.Unmarshal([]byte(objectJSON), &obj) if err != nil { mh.log.Error(ErrUnmarshal(err, objectJSON)) return obj, ErrUnmarshal(err, objectJSON) @@ -279,7 +281,7 @@ func (mh *MeshsyncDataHandler) getComponentMetadata(apiVersion string, kind stri compStyles = K8sMeshModelMetadata.Styles return } - err = utils.Unmarshal(strMetadata, &compStyles) + err = encoding.Unmarshal([]byte(strMetadata), &compStyles) if err != nil { compStyles = K8sMeshModelMetadata.Styles return diff --git a/server/models/pattern/patterns/patterns.go b/server/models/pattern/patterns/patterns.go index 31e419d539b..7326821d60a 100644 --- a/server/models/pattern/patterns/patterns.go +++ b/server/models/pattern/patterns/patterns.go @@ -134,5 +134,5 @@ func mergeErrors(errs []error) error { return nil } - return fmt.Errorf(strings.Join(msgs, "\n")) + return fmt.Errorf("%s", strings.Join(msgs, "\n")) } diff --git a/server/models/pattern/resource/selector/workload.go b/server/models/pattern/resource/selector/workload.go index 24c13a5d4a0..9b36bf4a15f 100644 --- a/server/models/pattern/resource/selector/workload.go +++ b/server/models/pattern/resource/selector/workload.go @@ -6,18 +6,19 @@ import ( "github.com/meshery/schemas/models/v1beta1/component" + "github.com/layer5io/meshkit/models/meshmodel/entity" regv1beta1 "github.com/layer5io/meshkit/models/meshmodel/registry/v1beta1" ) -func (s *Selector) GetDefinition(name string, version string, modelName string, apiVersion string) (component.ComponentDefinition, error) { +func (s *Selector) GetDefinition(name string, version string, modelName string, apiVersion string, allowEmptyAPIVersion bool) (component.ComponentDefinition, error) { var comp *component.ComponentDefinition name = strings.Split(name, ".")[0] fmt.Println(name, modelName, version, apiVersion) - if modelName == "" { + if modelName == "" { return component.ComponentDefinition{}, fmt.Errorf("model name is required") } - - if apiVersion == "" { + + if apiVersion == "" && !allowEmptyAPIVersion { return component.ComponentDefinition{}, fmt.Errorf("apiVersion is required") } @@ -26,7 +27,17 @@ func (s *Selector) GetDefinition(name string, version string, modelName string, ModelName: modelName, APIVersion: apiVersion, }) - + + comp, found := FindCompDefinitionWithVersion(entities, version) + if !found || comp == nil { + component := component.ComponentDefinition{} + return component, fmt.Errorf("could not find component with name: %s, model: %s, apiVersion: %s", name, modelName, apiVersion) + } + return *comp, nil +} + +func FindCompDefinitionWithVersion(entities []entity.Entity, version string) (*component.ComponentDefinition, bool) { + var comp *component.ComponentDefinition found := false for _, en := range entities { if en != nil { @@ -35,15 +46,14 @@ func (s *Selector) GetDefinition(name string, version string, modelName string, if ok { found = true } - if comp.Model.Version == version { //prefer to use the correct version, if available + if comp.Model.Model.Version == version { //prefer to use the correct version, if available break } } } if !found || comp == nil { component := component.ComponentDefinition{} - return component, fmt.Errorf(fmt.Sprintf("could not find component with name: %s, model: %s, apiVersion: %s", name, modelName, apiVersion)) + return &component, found } - return *comp, nil + return comp, found } - diff --git a/server/models/pattern/stages/provision.go b/server/models/pattern/stages/provision.go index 1f090402c62..1f1422fa7f2 100644 --- a/server/models/pattern/stages/provision.go +++ b/server/models/pattern/stages/provision.go @@ -52,7 +52,11 @@ func Provision(prov ServiceInfoProvider, act ServiceActionProvider, log logger.H _ = plan.Execute(func(name string, component component.ComponentDefinition) bool { ccp := CompConfigPair{} - core.AssignAdditionalLabels(&component) + err := core.AssignAdditionalLabels(&component) + if err != nil { + errs = append(errs, err) + return false + } // Generate hosts list ccp.Hosts = generateHosts( @@ -64,8 +68,9 @@ func Provision(prov ServiceInfoProvider, act ServiceActionProvider, log logger.H _annotations, ok := component.Configuration["annotations"] if !ok { - _annotations = map[string]string{} + annotations = map[string]string{} // Directly initialize `annotations` to an empty map } else { + var err error annotations, err = utils.Cast[map[string]string](_annotations) if err != nil { errs = append(errs, err) @@ -125,7 +130,7 @@ func mergeErrors(errs []error) error { errMsg = append(errMsg, err.Error()) } - return fmt.Errorf(strings.Join(errMsg, "\n")) + return fmt.Errorf("%s", strings.Join(errMsg, "\n")) } // move into meshkit and change annotations prefix name diff --git a/server/models/pattern/stages/validate.go b/server/models/pattern/stages/validate.go index 38845bb45c4..dab79723b43 100644 --- a/server/models/pattern/stages/validate.go +++ b/server/models/pattern/stages/validate.go @@ -71,7 +71,7 @@ func Validator(prov ServiceInfoProvider, act ServiceActionProvider, validate boo } for _, component := range data.Pattern.Components { - wc, err := s.GetDefinition(component.Component.Kind, component.Model.Model.Version, component.Model.Name, component.Component.Version) + wc, err := s.GetDefinition(component.Component.Kind, component.Model.Model.Version, component.Model.Name, component.Component.Version, false) if err != nil { act.Terminate(err) return diff --git a/server/models/remote_provider.go b/server/models/remote_provider.go index 95a9fb2c708..a61d7102696 100644 --- a/server/models/remote_provider.go +++ b/server/models/remote_provider.go @@ -408,7 +408,7 @@ func (l *RemoteProvider) GetUserByID(req *http.Request, userID string) ([]byte, l.Log.Info("User profile retrieved from remote provider.") return bdr, nil } - err = ErrFetch(fmt.Errorf(fmt.Sprintf("Error retrieving user with ID: %s", userID)), "User Profile", resp.StatusCode) + err = ErrFetch(fmt.Errorf("Error retrieving user with ID: %s", userID), "User Profile", resp.StatusCode) l.Log.Error(err) return nil, err } @@ -3869,7 +3869,7 @@ func (l *RemoteProvider) GetConnectionsByKind(req *http.Request, _ string, page, bdr, _ := io.ReadAll(resp.Body) if resp.StatusCode != http.StatusOK { - return nil, ErrFetch(fmt.Errorf(string(bdr)), "connections", resp.StatusCode) + return nil, ErrFetch(fmt.Errorf("%s", string(bdr)), "connections", resp.StatusCode) } var res map[string]interface{} diff --git a/ui/components/BBChart.js b/ui/components/BBChart.js index 06f350c5412..1946e9bf48f 100644 --- a/ui/components/BBChart.js +++ b/ui/components/BBChart.js @@ -12,7 +12,7 @@ const BBChart = ({ options }) => { }; }, [options]); - return
; + return
e.stopPropagation()}>
; }; // Memoize the component to prevent unnecessary re-renders diff --git a/ui/components/DashboardComponent/charts/ConnectionCharts.js b/ui/components/DashboardComponent/charts/ConnectionCharts.js index ca2868484dc..af645c1b340 100644 --- a/ui/components/DashboardComponent/charts/ConnectionCharts.js +++ b/ui/components/DashboardComponent/charts/ConnectionCharts.js @@ -12,9 +12,11 @@ import { useGetAllConnectionStatusQuery } from '@/rtk-query/connection'; import { InfoOutlined } from '@material-ui/icons'; import CAN from '@/utils/can'; import { keys } from '@/utils/permission_constants'; +import { useRouter } from 'next/router'; export default function ConnectionStatsChart({ classes }) { const { data: statusData } = useGetAllConnectionStatusQuery(); + const router = useRouter(); const chartData = statusData?.connections_status @@ -26,6 +28,9 @@ export default function ConnectionStatsChart({ classes }) { columns: chartData, type: donut(), colors: dataToColors(chartData), + onclick: function () { + router.push('/management/connections'); + }, }, arc: { cornerRadius: { diff --git a/ui/components/DashboardComponent/charts/DashboardMeshModelGraph.js b/ui/components/DashboardComponent/charts/DashboardMeshModelGraph.js index d93aacff615..2de1d8144d0 100644 --- a/ui/components/DashboardComponent/charts/DashboardMeshModelGraph.js +++ b/ui/components/DashboardComponent/charts/DashboardMeshModelGraph.js @@ -14,9 +14,11 @@ import { useGetComponentsQuery, useGetMeshModelsQuery, useGetRelationshipsQuery, + useGetRegistrantsQuery, } from '@/rtk-query/meshModel'; import CAN from '@/utils/can'; import { keys } from '@/utils/permission_constants'; +import { useRouter } from 'next/router'; function MeshModelContructs({ classes }) { const params = { @@ -26,20 +28,25 @@ function MeshModelContructs({ classes }) { const modelCount = useGetMeshModelsQuery({ params }).data?.total_count || 0; const componentCount = useGetComponentsQuery({ params }).data?.total_count || 0; const relationshipCount = useGetRelationshipsQuery({ params }).data?.total_count || 0; + const registrantsConut = useGetRegistrantsQuery({ params }).data?.total_count || 0; // Data Cleanup const data = [ ['Models', modelCount], ['Components', componentCount], ['Relationships', relationshipCount], + ['Registrants', registrantsConut], ]; - + const router = useRouter(); const chartOptions = useMemo( () => ({ data: { columns: data, type: donut(), colors: dataToColors(data), + onclick: function (d) { + router.push(`/settings?settingsCategory=Registry&tab=${d.name}`); + }, }, arc: { cornerRadius: { @@ -63,7 +70,7 @@ function MeshModelContructs({ classes }) { return ( Registry +
e.stopPropagation()}> +
Models by Category +
e.stopPropagation()}> ({ cardButtons: { @@ -67,39 +66,6 @@ const useStyles = makeStyles((theme) => ({ }, })); -const avatarHandler = (function AvatarHandler() { - const idToAvatarMap = {}; - - function fetchUserAvatarLink(userId, setterCallbackFunction) { - if (!userId) return null; - dataFetch( - `/api/user/profile/${userId}`, - { - credentials: 'include', - }, - function assignAvatarLinkToId(result) { - if (result.avatar_url) { - idToAvatarMap[userId] = result.avatar_url; - setterCallbackFunction(result.avatar_url); - } - }, - function handleProfileFetchError(error) { - console.error('failed to fetch user profile with ID', userId, error); - }, - ); - } - - return { - getAvatar: async function _getAvatar(userId, setterFn) { - if (idToAvatarMap[userId]) { - return setterFn(idToAvatarMap[userId]); - } - - fetchUserAvatarLink(userId, setterFn); - }, - }; -})(); - function PerformanceCard({ profile, handleDelete, @@ -111,10 +77,19 @@ function PerformanceCard({ const classes = useStyles(); const theme = useTheme(); const [userAvatar, setUserAvatar] = useState(null); + const { + data: userData, + isSuccess: isUserDataFetched, + isError: userError, + } = useGetUserByIdQuery(profile.user_id); useEffect(() => { - avatarHandler.getAvatar(profile.user_id, setUserAvatar); - }, []); + if (isUserDataFetched && userData && userData.avatar_url) { + setUserAvatar(userData.avatar_url); + } else if (userError) { + console.error('Failed to fetch user profile with ID'); + } + }, [isUserDataFetched, userError, userData]); const { id, @@ -263,7 +238,7 @@ function PerformanceCard({ }`, }} > - Last Run: {lastRun} + Last Run: {moment(lastRun).format('LLL')} )}
diff --git a/ui/components/MesheryPerformance/PerformanceProfiles.js b/ui/components/MesheryPerformance/PerformanceProfiles.js index b7183c782ab..2704e80eb97 100644 --- a/ui/components/MesheryPerformance/PerformanceProfiles.js +++ b/ui/components/MesheryPerformance/PerformanceProfiles.js @@ -1,44 +1,52 @@ // @ts-nocheck import React, { useEffect, useState, useRef } from 'react'; -import PromptComponent, { PROMPT_VARIANTS } from '../PromptComponent'; -import PerformanceProfileGrid from './PerformanceProfileGrid'; -import dataFetch from '../../lib/data-fetch'; -import IconButton from '@material-ui/core/IconButton'; -import AddIcon from '@material-ui/icons/AddCircleOutline'; +import Moment from 'react-moment'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; -import { updateProgress } from '../../lib/store'; -// import GenericModal from '../GenericModal'; -import MesheryPerformanceComponent from './index'; -import { Paper, Typography, Button, TableCell, TableRow } from '@material-ui/core'; -import fetchPerformanceProfiles from '../graphql/queries/PerformanceProfilesQuery'; -import { withStyles } from '@material-ui/core/styles'; -import { iconMedium } from '../../css/icons.styles'; -import subscribePerformanceProfiles from '../graphql/subscriptions/PerformanceProfilesSubscription'; -import { useNotification } from '@/utils/hooks/useNotification'; -import { EVENT_TYPES } from '../../lib/event-types'; + +import { + Button, + IconButton, + Paper, + TableCell, + TableRow, + TableSortLabel, + Typography, + withStyles, +} from '@material-ui/core'; +import AddIcon from '@material-ui/icons/AddCircleOutline'; +import EditIcon from '@material-ui/icons/Edit'; +import PlayArrowIcon from '@material-ui/icons/PlayArrow'; + import { CustomColumnVisibilityControl, Modal, ResponsiveDataTable, SearchBar, } from '@layer5/sistent'; -import Moment from 'react-moment'; -import TableSortLabel from '@material-ui/core/TableSortLabel'; +import MesheryPerformanceComponent from './index'; +import PerformanceProfileGrid from './PerformanceProfileGrid'; import PerformanceResults from './PerformanceResults'; -import EditIcon from '@material-ui/icons/Edit'; -import PlayArrowIcon from '@material-ui/icons/PlayArrow'; -import ReusableTooltip from '../reusable-tooltip'; +import PromptComponent, { PROMPT_VARIANTS } from '../PromptComponent'; import ViewSwitch from '../ViewSwitch'; +import { UsesSistent } from '../SistentWrapper'; + +import { updateProgress } from '../../lib/store'; +import { EVENT_TYPES } from '../../lib/event-types'; +import fetchPerformanceProfiles from '../graphql/queries/PerformanceProfilesQuery'; +import subscribePerformanceProfiles from '../graphql/subscriptions/PerformanceProfilesSubscription'; import useStyles from '../../assets/styles/general/tool.styles'; +import { iconMedium } from '../../css/icons.styles'; + +import { useDeletePerformanceProfileMutation } from '@/rtk-query/performance-profile'; +import { useNotification } from '@/utils/hooks/useNotification'; +import ReusableTooltip from '../reusable-tooltip'; import { updateVisibleColumns } from '@/utils/responsive-column'; import { useWindowDimensions } from '@/utils/dimension'; import { ConditionalTooltip } from '@/utils/utils'; import CAN from '@/utils/can'; import { keys } from '@/utils/permission_constants'; -import { UsesSistent } from '../SistentWrapper'; -const MESHERY_PERFORMANCE_URL = '/api/user/performance/profiles'; const styles = (theme) => ({ title: { textAlign: 'center', @@ -136,6 +144,8 @@ function PerformanceProfile({ updateProgress, classes, user, handleDelete }) { const { notify } = useNotification(); const { width } = useWindowDimensions(); const [isSearchExpanded, setIsSearchExpanded] = useState(false); + + const [deletePerformanceProfile] = useDeletePerformanceProfileMutation(); // const [loading, setLoading] = useState(false); /** * fetch performance profiles when the page loads @@ -221,19 +231,14 @@ function PerformanceProfile({ updateProgress, classes, user, handleDelete }) { } function deleteProfile(id) { - dataFetch( - `${MESHERY_PERFORMANCE_URL}/${id}`, - { - method: 'DELETE', - credentials: 'include', - }, - () => { + deletePerformanceProfile({ id: id }) + .unwrap() + .then(() => { updateProgress({ showProgress: false }); notify({ message: 'Performance Profile Deleted!', event_type: EVENT_TYPES.SUCCESS }); fetchTestProfiles(page, pageSize, search, sortOrder); - }, - handleError('Failed To Delete Profile'), - ); + }) + .catch(() => handleError('Failed To Delete Profile')); } function handleError(msg) { diff --git a/ui/components/MesheryPerformance/PerformanceResults.js b/ui/components/MesheryPerformance/PerformanceResults.js index c3638d7e86e..84790c074e6 100644 --- a/ui/components/MesheryPerformance/PerformanceResults.js +++ b/ui/components/MesheryPerformance/PerformanceResults.js @@ -18,7 +18,6 @@ import Moment from 'react-moment'; import { withStyles } from '@material-ui/core/styles'; import { updateResultsSelection, clearResultsSelection, updateProgress } from '../../lib/store'; import TableSortLabel from '@material-ui/core/TableSortLabel'; -// import dataFetch from "../../lib/data-fetch"; import CustomToolbarSelect from '../CustomToolbarSelect'; import MesheryChart from '../MesheryChart'; import GrafanaCustomCharts from '../telemetry/grafana/GrafanaCustomCharts'; diff --git a/ui/components/MesheryPerformance/index.js b/ui/components/MesheryPerformance/index.js index 94e1d641827..02f3745e9b2 100644 --- a/ui/components/MesheryPerformance/index.js +++ b/ui/components/MesheryPerformance/index.js @@ -52,6 +52,9 @@ import CAN from '@/utils/can'; import { keys } from '@/utils/permission_constants'; import DefaultError from '@/components/General/error-404/index'; import { CustomTextTooltip } from '../MesheryMeshInterface/PatternService/CustomTextTooltip'; +import { useGetUserPrefWithContextQuery } from '@/rtk-query/user'; +import { useSavePerformanceProfileMutation } from '@/rtk-query/performance-profile'; +import { useGetMeshQuery } from '@/rtk-query/mesh'; // =============================== HELPER FUNCTIONS =========================== @@ -275,6 +278,18 @@ const MesheryPerformanceComponent = (props) => { const [staticPrometheusBoardConfigState, setStaticPrometheusBoardConfig] = useState( staticPrometheusBoardConfig, ); + + const { data: userData, isSuccess: isUserDataFetched } = useGetUserPrefWithContextQuery( + props?.selectedK8sContexts, + ); + + const [savePerformanceProfile] = useSavePerformanceProfileMutation(); + const { + data: smpMeshes, + isSuccess: isSMPMeshesFetched, + isError: isSMPMeshError, + } = useGetMeshQuery(); + const handleChange = (name) => (event) => { const { value } = event.target; if (name === 'caCertificate') { @@ -467,12 +482,10 @@ const MesheryPerformanceComponent = (props) => { const handleProfileUpload = (body, generateNotif, cb) => { if (generateNotif) props.updateProgress({ showProgress: true }); - - dataFetch( - '/api/user/performance/profiles', - { method: 'POST', credentials: 'include', body: JSON.stringify(body) }, - (result) => { - if (typeof result !== 'undefined') { + savePerformanceProfile({ body: body }) + .unwrap() + .then((result) => { + if (result) { props.updateProgress({ showProgress: false }); setPerformanceProfileID(result.id); if (cb) cb(result); @@ -484,8 +497,8 @@ const MesheryPerformanceComponent = (props) => { }); } } - }, - (err) => { + }) + .catch((err) => { console.error(err); props.updateProgress({ showProgress: false }); const notify = props.notify; @@ -494,8 +507,7 @@ const MesheryPerformanceComponent = (props) => { event_type: EVENT_TYPES.ERROR, details: err.toString(), }); - }, - ); + }); }; const submitLoadTest = (id) => { @@ -609,22 +621,15 @@ const MesheryPerformanceComponent = (props) => { getLoadTestPrefs(); getSMPMeshes(); if (props.runTestOnMount) handleSubmit(); - }, []); + }, [userData, isUserDataFetched, smpMeshes]); const getLoadTestPrefs = () => { - dataFetch( - ctxUrl('/api/user/prefs', props?.selectedK8sContexts), - { credentials: 'same-origin', method: 'GET' }, - (result) => { - if (typeof result !== 'undefined') { - setQps(result.loadTestPrefs.qps); - setC(result.loadTestPrefs.c); - setT(result.loadTestPrefs.t); - setLoadGenerator(result.loadTestPrefs.gen); - } - }, - () => {}, - ); //error is already captured from the handler, also we have a redux-store for same & hence it's not needed here. + if (isUserDataFetched && userData && userData.loadTestPref) { + setQps(userData.loadTestPrefs.qps); + setC(userData.loadTestPrefs.c); + setT(userData.loadTestPrefs.t); + setLoadGenerator(userData.loadTestPrefs.gen); + } }; const getStaticPrometheusBoardConfig = () => { @@ -707,16 +712,11 @@ const MesheryPerformanceComponent = (props) => { }; const getSMPMeshes = () => { - dataFetch( - '/api/mesh', - { credentials: 'include' }, - (result) => { - if (result && Array.isArray(result.available_meshes)) { - setAvailableSMPMeshes(result.available_meshes.sort((m1, m2) => m1.localeCompare(m2))); - } - }, - handleError('unable to fetch SMP meshes'), - ); + if (isSMPMeshesFetched && smpMeshes) { + setAvailableSMPMeshes([...smpMeshes.available_meshes].sort((m1, m2) => m1.localeCompare(m2))); // shallow copy of the array to sort it + } else if (isSMPMeshError) { + handleError('unable to fetch SMP meshes'); + } }; function handleError(msg) { diff --git a/ui/rtk-query/mesh.js b/ui/rtk-query/mesh.js new file mode 100644 index 00000000000..abf9e1ce1e2 --- /dev/null +++ b/ui/rtk-query/mesh.js @@ -0,0 +1,11 @@ +import { api } from './index'; + +export const meshApi = api.injectEndpoints({ + endpoints: (builder) => ({ + getMesh: builder.query({ + query: () => 'mesh', + }), + }), +}); + +export const { useGetMeshQuery } = meshApi; diff --git a/ui/rtk-query/user.js b/ui/rtk-query/user.js index a729b6541e5..301ba570e61 100644 --- a/ui/rtk-query/user.js +++ b/ui/rtk-query/user.js @@ -27,6 +27,13 @@ const userApi = api.injectEndpoints({ credentials: 'include', }), }), + getUserPrefWithContext: builder.query({ + query: (selectedK8sContexts) => ({ + url: ctxUrl('user/prefs', selectedK8sContexts), + method: 'GET', + credentials: 'same-origin', + }), + }), updateUserPrefWithContext: builder.mutation({ query: (queryArg) => ({ url: ctxUrl('/user/prefs', queryArg.selectedK8sContexts), @@ -50,6 +57,7 @@ export const { useLazyGetTokenQuery, useGetUserPrefQuery, useUpdateUserPrefMutation, + useGetUserPrefWithContextQuery, useUpdateUserPrefWithContextMutation, useGetProviderCapabilitiesQuery, } = userApi; diff --git a/ui/tests/e2e/custom-playwright-reporter.js b/ui/tests/e2e/custom-playwright-reporter.js index 0278d4b36d7..2bc2040dcd7 100644 --- a/ui/tests/e2e/custom-playwright-reporter.js +++ b/ui/tests/e2e/custom-playwright-reporter.js @@ -36,12 +36,10 @@ class MyReporter { const message = await this.buildMessage(result); try { - await writeFileSync('test-report.md', message); + writeFileSync('test-report.md', message); } catch (e) { console.log('Cannot write test reporter ', e); } - - process.exit(this.failed > 0 ? 130 : 0); // Return non-zero status code if there are failed tests } addFailMessage(message) { diff --git a/ui/tests/e2e/env.js b/ui/tests/e2e/env.js index 6996861527e..74c02b84032 100644 --- a/ui/tests/e2e/env.js +++ b/ui/tests/e2e/env.js @@ -22,7 +22,7 @@ if (process.env.CI) { if (!PROVIDER_TOKEN) { core.setFailed( - 'Token is required, please provide token from Meshery Cloud Provider https://meshery.layer5.io/security/tokens', + 'Token is required, please provide token from Meshery Cloud Provider https://staging-meshery.layer5.io/security/tokens', ); } } else { diff --git a/ui/tests/e2e/utils/fetch.js b/ui/tests/e2e/utils/fetch.js index 31126bd6323..51656a2d724 100644 --- a/ui/tests/e2e/utils/fetch.js +++ b/ui/tests/e2e/utils/fetch.js @@ -14,10 +14,11 @@ export async function fetchData(endpoint, method = 'GET', body = null) { const url = `${ENV.MESHERY_SERVER_URL}/api${endpoint}`; const yourToken = ENV.PROVIDER_TOKEN; const token = yourToken || getTokenFromAuthFile(); + const urlWithoutProtocol = new URL(ENV.REMOTE_PROVIDER_URL).host; const headers = { 'meshery-token': token, - Cookie: `meshery-provider=Meshery; meshery.layer5.io_ref=/;token=${token}`, + Cookie: `meshery-provider=Meshery; ${urlWithoutProtocol}_ref=/;token=${token}`, }; try {